IEとfirefoxのjavascriptのまとめ


次の点に注意してください.
(一)javascript/DOM規格をできるだけ使用する
(二)標準はブラウザにまたがることができない場合がある
1)ブラウザをまたぐときにie特有の関数によく遭遇しますか?
次のように解決できます.
ieとfirefoxのjavascriptコードを別々に書くと判断します
if(typeof window.ActiveXObject!='undefined'){//IEブラウザをサポート
//do some thing here
}
else if((typeof document.implementation!='undefined')&&(typeof document.implementation.createDocument!='undefined'){//Firefoxブラウザをサポート
//do some thing here
}
2)windowに遭遇した場合.eventでは、関数で特別に処理します.
e.g.
ページ:
< input type="button" value="test" onclick="javasctipt:testOnclick(event)" >

JAvasctiptのコード
function testOnclick(evt){
	evt = evt ? evt : (window.event ? window.event : null);
}
//       id
	        var elem = evt.srcElement ? evt.srcElement : evt.target;//             document.getelementById("xx")     
	        idOfInputElement=elem.getAttribute("id");//   id            

3)ArrayのindexOfメソッドに関する質問
Arrayはobjectオブジェクトで、idsArrayはサポートされていないブラウザもあります.indexOf(..),この方法もjavascript標準ではなく、ループで最も正確な値を得ることができます.
4)ページ呼び出しフレームにおけるメソッドの問題
例えば、A.htmlがあります.彼はB.htmlを含んでいます.B.htmlにはtest()メソッドがあり、buttonがあり、buttonを押すとtestメソッドがトリガーされます
書き方:window.top.frames["BB"].document.getElementById("BFrame")==window.top.BB.Bframeの結果はfalseであり、彼らが異なるオブジェクトであることを示している.
window.top.BB.Bframeはobject window
window.top.frames["BB"].document.getElementById(「Bframe」)とwindow.top.BB.document.getElementById(「Bframe」)はobjectHTML FrameElementです
削除するときも違います
object windowが手に入れたのはwindowオブジェクトで、2回削除してから削除することができて、时にはまた间违いを报告します
ObjectHTML FrameElementはページの中のframe要素で、一度削除すれば完全に削除できます.このような削除はnullを指しているだけで、objectHTML FrameElement要素はまだ存在します.
(三)初期化問題
オブジェクトを使用する場合は、使用前にできるだけ初期化すると、ロードの問題を回避できます.
(四)その他の問題:
次のコードはfirefoxマウスの右ボタンを隠すために使用されます.

document.oncontextmenu=function(e){return false;}

選択禁止について:
IEの下で、ユーザーが内容を選択することを禁止して、スクリプトで実現することができます:

document.onselectstart = function(){return false;}

または

firefoxでは、このような書き方では同じ機能は実現できませんが、cssで実現する可能性があります.
ページに追加

例:


これらの文字を選んでみてはいかがでしょうか.

それをall["XX"]をdocumentに変更します.getElementById("XX");