<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>