<script type="text/javascript"> var gDateJSObj; function start(){ gDateJSObj = new DateJS(); gDateJSObj.dspPassingYMDTime('KOKO'); } function stop(){ gDateJSObj.stopPassingYMDTime(); } </script>
ここでは、prototype.jsを利用してnew
演算子でオブジェクトを生成しコントロールします。
Class.create
を使うときは、オブジェクト生成時にinitialize()
が実行されます。ここで、メンバを初期化します。DateJS.dspPassingYMDTime(element)
では、div
タグなどに付与したID文字列を渡します
。<script type="text/javascript" src="/AJAX/prototype.js" charset="utf-8"></script> <script type="text/javascript"> var DateJSBase = { Version: '2.0.0', Description: '日付・時刻を刻々と表示する、日付を元に画像の表示/非表示' }; //---------------------------------------------- // prototype.js var DateJS = Class.create(DateJSBase, { Version: '2.2.a', _date: {}, // テンポラリ用オブジェクト // コンストラクタ initialize: function() { this.PassingYMDTimeCount=0; this.intervalPassingYMDTimeID=0; }, //------------------------------ // ○○から△時分秒経過 dspPassingYMDTime: function (element) { element = getEl(element); if (typeof element == 'null') return; this._date.baseTime = new Date(); this._dspPassingYMDTime(element); if (AugusAjax.Browser.Trident){ // IE の場合は、第三引数以降が利用できないので、無名関数で、呼び出せばよい this.intervalPassingYMDTimeID.push( setInterval(function () { this._dspPassingYMDTime(element); }.bind(this),999) ); } else this.intervalPassingYMDTimeID.push( setInterval(this._dspPassingYMDTime.bind(this), 10, element) ); return; }, _dspPassingYMDTime: function (element) { // 1時間経過したら停止する if (this.PassingYMDTimeCount++ >= 3600000) { // 60*60*1000 this.stopPassingYMDTime (); alert(gAlertStr[0]); } this._date.now = new Date (); var temp = this._date.now - this._date.baseTime; $HTML(element,getHMS(temp)); delete this._date.now; }, stopPassingYMDTime: function () { for (var i=0; i<this.intervalPassingYMDTimeID.length; i++) { clearInterval (this.intervalPassingYMDTimeID[i]); } } }); // End of DateJS // $HTML(element,str) getElementById(element).innerHTML = str; </script>