2バージョンを検出しないで、オブジェクトを検出します.

1108 ワード

Javascriptを作成するためには、jsで各種ブラウザのバージョンを検出し、異なるjsコードを作成することがまず考えられるかもしれません.
このような思想はよくないので、通用しないのです.
本テキストの問題のように、バージョンを検出しないで、オブジェクトを検出します.
例:
初期のNetscape 4とIE 3はDcument.bodyをサポートしていません.私達はこの2つのブラウザに対してdocument.bodyを使わないようにしたいです.どうすればいいですか?多くの人が一気に思いつきました.ブラウザのバージョンをチェックします.これは一番いいものではないです.
私達はブラウザがあるオブジェクトをサポートしているかどうかを確認します.バージョンを検出するのではありません.
if(document.body&&document.body.getElementsByTagName)

{

//     document.body

//     document.body.getElementsByTagName

 

}
もしif()条件が満たされていないなら、私達のページの中でいくつかの閃光点が少なくなりますが、プログラムは間違いなく実行できます.
以下はイベントの対象を取得する例です.
その中のwindow.eventは測定対象です.
//       
function $EVENTObject()
{
if(window.event)
{ 
return window.event;
}
 var f=$EVENTObject.caller;
 while(f!=null)
 {
 var e = f.arguments[0]; 
alert(e);
 if(e && (e.constructor==MouseEvent||e.constructor==Event||e.constructor==KeyboardEvent)) return e; 
 f=f.caller;
 }
}