ホームページ > 記事 > ウェブフロントエンド > Firefox と互換性のある IE ブラウザ JS スクリプト コード_javascript スキル
1. window.event 互換スクリプト
2. Shield Form 送信イベント
3. イベントソース取得
4. イベント互換記述メソッド追加
5. Firefox 登録 innerText 記述メソッド
6. 長さ
7. 親コントロールの下の子コントロール
8. if(document.all) return window.event;
while(func!=null){
var arg0=func.arguments[0];
if(arg0 ){
if((arg0.constructor==Event arg0.constructor ==MouseEvent)
(typeof(arg0)=="オブジェクト" && arg0.preventDefault && arg0.stopPropagation)){
return arg0 ;
}
}
func=func.caller
}
>Firefox はイベントを使用する前に毎回 getEvent() を使用してイベントを取得する必要があります。それ以外の場合は空になります
2. IE の場合はフォーム送信イベント
event.returnValue=false;// をシールドします。 PreventDefault();//Firefox 用
3. イベント ソースを取得します
var source=event.srcElement //IE
var source=event.target //firefox
4. イベント互換の書き込みを追加します。
function addEvent(oElement,sEvent,func){
if (oElement.attachEvent ){
oElement.attachEvent(sEvent,func);
else{
sEvent=sEvent .substring(2,sEvent.length);
oElement.addEventListener(sEvent,func, false)
}
}
使用法: addEvent(window,"onload",Start); >5.Firefox 登録 innerText 記述メソッド
//Firefox innerText を登録
HTMLElement.prototype .__defineGetter__("innerText",
function(){
var anyString = "";
var childS = this.childNodes;
for(var i=0; i if(childS[i] .nodeType==1)
anyString = childS[i].tagName=="BR" ? 'n' : childS [i].innerText;
else if(childS[i].nodeType==3)
anyString = childS[i].nodeValue;
return anyString; >);
HTMLElement.prototype.__defineSetter__("innerText",
function(sText ; は "children"、FireFox は "childNodes"
8. 、それ以外の場合は 411 エラーが発生します