2008年11月25日火曜日

ロード時の処理を行う関数

つづいて、ロード時の処理を行う関数です。


cc_huu_tools_bp_20081024.load = function() {


loadプロパティにロード時の処理を行う関数リテラルを設定します。


  var obj = cc_huu_tools_bp_20081024;


オブジェクト名が長いので、obj変数に入れて使用します。


  var i;


カウンタです。


  var imageUrl;


ユーザが指定したキャラクター画像のURLを格納します。


  var language;


未使用。削除し忘れたようです。


  obj.lang.widget = obj.adjustLang(obj.browserLang(obj.lang.widget), 'widget');


説明画像用の言語を取得。


  obj.lang.site = obj.adjustLang(obj.browserLang(obj.lang.site), 'site');


Powered byリンク用の言語を取得。


  for (i=0;i<document.getElementsByTagName("script").length;i++) {


ユーザが指定したキャラクター画像のURLを取得するために、ドキュメントのscriptタグ数分ループします。


    if (document.getElementsByTagName("script")[i].src.indexOf(obj.url) >= 0) {


scriptタグが自分かどうか判定します。判定方法は自分のURLが含まれているかどうかです。


      imageUrl =
        document.getElementsByTagName("script")[i].src.match(/\?image=(\S{0,200})/)[1];


scriptタグが自分のものなら、ユーザが指定したキャラクター画像のURLを取得します。matchメソッドで?image=以降の文字列を取得します。文字は最大200文字。matchメソッドが返す配列の0番目ではなく、1番目に?image=以降の文字列が格納されています。


      if (imageUrl) {
        obj.imageFileName = imageUrl;
      }
    }
  }


ユーザ指定のキャラクター画像URLがありなら、初期値と差し替えます。


  document.write('<img src="' + obj.imageFileName + '" id="imageImgId" ');
  document.write(' height="' + obj.imageSize.height + '" ');
  document.write(' width="' + obj.imageSize.width + '" >');


キャラクター画像のhtmlを出力。


  document.write('<img src="' + obj.explanationImageFileName1 +
    obj.lang.widget + obj.explanationImageFileExtension + '" id="explanationImgId" ');
  document.write(' height="' + obj.explanationSize.height + '" ');
  document.write(' width="' + obj.explanationSize.width + '" >');
  document.write('
');


説明画像のhtmlを出力。


  switch (obj.lang.site) {
  case 'ja':
    document.write('<a href="' + obj.poweredBy + '" id="poweredByLinkId" target="_blank" >');
    break;
  default:
    document.write('<a href="' + obj.poweredBy + obj.lang.site + '/" id="poweredByLinkId" target="_blank" >');
    break;
  }
  document.write('Powered by Hida ');


Powered byのリンクのhtmlを出力。リンク先は配布ページ。言語コードでディレクトリを分けるようにしているが、日本語だけ特別なので、switch文を使用している。でもまだ、英語ページと日本語ページしかない。


  document.write('<button type="button" id="clickButtonId" disabled ');
  document.write(' onclick="cc_huu_tools_bp_20081024.buttonClick()" >');
  document.write(obj.buttonName.start + '');


ボタンのhtmlを出力。


  document.getElementById('poweredByLinkId').style.fontSize = 'small';


Powered byリンクの文字をsmallに。


  if (document.addEventListener) {
    document.addEventListener('mousemove', obj.processMouseMove, false);
  } else if (document.attachEvent) {
    document.attachEvent('onmousemove', obj.processMouseMove);
  }


マウスムーブイベントを受け取るために、イベントハンドラを登録。IEと他のブラウザではメソッドが異なるため、if文で分けています。attachEventがIE用です。


  setInterval(obj.interrupt50ms,50);
  setInterval(obj.interrupt500ms,500);
};


50ms割込処理と500ms割込処理を登録します。
これで、ロード時処理関数は終了です。

0 件のコメント: