<script type="text/javascript"> var gDateJSObj; function viewDate(){ gDateJSObj = new DateJS(); gDateJSObj.nowTimeOnTitlebar(); } function hiddenDate(){ gDateJSObj.stopNowTimeTitlebar(); // タイマーをストップ } </script>
ここでは、prototype.jsを利用してnew
演算子でオブジェクトを生成しコントロールします。
Class.create
を使うときは、オブジェクト生成時にinitialize()
が実行されます。ここで、メンバを初期化します。DateJS.nowTimeOnTitlebar()
では、元のタイトル文字列の後ろに日時を上書きします。<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.NowTimeTitlebarCount=0; this.intervalNowTimeOnTitlebarID=0; }, //-------------------------------- // タイトルバーに日時刻々と表示する(1秒ごとに書き換え) nowTimeOnTitlebar: function () { this._getNowTimeOnTitlebar(); if (AugusAjax.Browser.Trident) // IE の場合は、第三引数以降が利用できないので、無名関数で、呼び出せばよい this.intervalNowTimeOnTitlebarID = setInterval(function () { this._getNowTimeOnTitlebar(); }.bind(this),999); else this.intervalNowTimeOnTitlebarID = setInterval(this._getNowTimeOnTitlebar.bind(this), 999); }, _getNowTimeOnTitlebar: function () { // 1時間経過したら停止する if (this.NowTimeTitlebarCount++ >= 3600000) { // 60*60*1000 this.stopNowTimeTitlebar (); alert(gAlertStr[0]); } this._date.now = new Date(); var YMD = this._date.now.getYMD (); var TMS = this._date.now.getTMS (); document.title = this._docTitle+" "+YMD[0]+"/"+YMD[1]+"/"+YMD[2]+" "+TMS[0]+":"+TMS[1]+":"+TMS[2]; delete this._date.now; }, stopNowTimeTitlebar: function () { clearInterval (this.intervalNowTimeOnTitlebarID); } }); // End of DateJS // $HTML(element,str) getElementById(element).innerHTML = str; </script>