<script type="text/javascript"> var gDateJSObj; function viewDate(){ gDateJSObj = new DateJS(); gDateJSObj.dspDateTime('KOKO'); // 引数の'KOKO'に出力する } function hiddenDate(){ gDateJSObj.stopDateTime(); // タイマーをストップ var DateElement = getEl("KOKO"); DateElement.innerHTML = "ここ!"; // 表示を書き換え } </script>
ここでは、prototype.jsを利用してnew
演算子でオブジェクトを生成しコントロールします。
Class.create
を使うときは、オブジェクト生成時にinitialize()
が実行されます。ここで、メンバを初期化します。DateJS.dspDateTime(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.DateTimeCount=0; this.intervalDateTimeID=0; }, //-------------------------------- // 日時を指定したエレメントに表示する(1秒ごとに書き換える) dspDateTime: function (element) { element = getEl(element); if (typeof element == 'null') return; this._getDateTime(element); if (AugusAjax.Browser.Trident){ // IE の場合は、第三引数以降が利用できないので、無名関数で、呼び出せばよい this.intervalDateTimeID = setInterval(function () { this._getDateTime(element); }.bind(this),999); } else this.intervalDateTimeID = setInterval(this._getDateTime.bind(this), 999, element); return; }, _getDateTime: function (element) { // 1時間経過したら停止する if (this.DateTimeCount++ >= 3600000) { // 60*60*1000 this.stopDateTime (); alert(gAlertStr[0]); } this._date.now = new Date(); $HTML(element, this._date.now.YMDtmsJP ()); delete this._date.now; }, stopDateTime: function () { clearInterval (this.intervalDateTimeID); } }); // End of DateJS // $HTML(element,str) getElementById(element).innerHTML = str; </script>