ホームページ > 記事 > ウェブフロントエンド > IE、Firefox、Opera のページ表示の類似点と相違点について、スクリプトを書くのは苦痛_JavaScript スキル
1.document.formName.item("itemName") 問題
説明: IE では document.formName.item("itemName") または Firefox では document.formName.elements ["elementName"] を使用できます。
解決策: document.formName.elements["elementName"] を一律に使用します。
2. コレクション クラス オブジェクトの問題
説明: IE では、コレクション オブジェクトを取得するには () または [] を使用できます。Firefox では、コレクション オブジェクトを取得するには [] のみを使用します。
3.
注: IE では、通常の属性を取得するメソッドを使用してカスタム属性を取得することも、getAttribute() を使用してカスタム属性を取得することもできます。Firefox では、getAttribute() を使用してカスタム属性を取得することしかできません。 🎜>解決策: getAttribute() を介してカスタム属性を取得する統合
4.eval("idName") の問題
説明: IE では、eval("idName") または getElementById("idName") を使用して、 ID を idName HTML オブジェクトとして取得します。Firefox では、idName の ID を持つ HTML オブジェクトを取得するには getElementById("idName") のみを使用します。
解決策: HTML オブジェクトを取得するには、一律に getElementById("idName") を使用します。 5. 変数名が HTML オブジェクトの ID と同じである問題
注: IE では、HTML オブジェクトの ID をそのまま変数名として使用できます。 Firefox では、HTML オブジェクトの ID を HTML オブジェクト ID と同じように使用できます。これは、IE では使用できません。
解決策: document.idName の代わりに document.getElementById("idName") を使用します。エラーを減らすために、変数を宣言するときは常に var を追加してください。
6.const の問題
説明: Firefox では定数の定義に const キーワードまたは var キーワードを使用できますが、IE では定数の定義に var キーワードのみを使用できます。
解決策: var を一律に使用します。
7.Input.type 属性の問題
説明: IE の input.type 属性は読み取り専用ですが、Firefox の input.type 属性は読み取り/書き込み可能です。 .event 問題
説明: window.event は Firefox ではなく IE でのみ実行できます。 これは、Firefox のイベントがイベントが発生するシーンでのみ使用できるためです。
解決策:
IE:
...
IE&Firefox:
...
9.event.x およびevent 。 y の問題
説明: IE では偶数オブジェクトに x、y 属性がありますが、pageX、pageY 属性はありません。Firefox では、偶数オブジェクトに pageX、pageY 属性がありますが、x、y 属性はありません。
解決策: IE の場合は、event.x を、Firefox の場合は、event.pageX を置き換えるには、mX (mX =event.x ?event.x :event.pageX;) を使用してください。
10.event.srcElement の問題
説明: IE では、 Even オブジェクトには srcElement 属性がありますが、target 属性はありません。Firefox では、even オブジェクトには target 属性がありますが、srcElement 属性はありません。
解決策: obj (obj =event.srcElement ?event.srcElement :event) を使用します。 .target;) IE のevent.srcElement または Firefox のevent.target を置き換えるには、
11.window.location.href の問題
説明: IE または Firefox2.0.x では、window.location またはwindow.location .href; Firefox 1.5.x では、window.location のみを使用できます。
解決策: window.location.href の代わりに window.location を使用します。
12. 🎜 >注: IE では、showModalDialog および showModelessDialog を通じてモーダル ウィンドウと非モーダル ウィンドウを開くことができますが、Firefox では開くことができません。
解決策: window.open(pageURL, name,parameters) を直接使用して、新しいウィンドウを開きます。
子ウィンドウのパラメータを親ウィンドウに戻す必要がある場合は、子ウィンドウで window.opener を使用して親ウィンドウにアクセスできます。例: var parWin = window.opener.getElementById; ("Aqing"). value = "Aqing";
13.フレームの問題
次のフレームを例に挙げます:
(1) フレーム オブジェクトにアクセスします:
IE: このフレーム オブジェクトにアクセスするには window.frameId または window .frameName を使用します。Firefox: このフレーム オブジェクトにアクセスするには window.frameName のみを使用できます。
さらに、window.document.getElementById(" FrameId") を使用すると、IE と Firefox の両方でアクセスできます。このフレーム オブジェクトです。
(2) フレーム コンテンツの切り替え:
window.document.getElementById("testFrame").src = "xxx.html" を使用できます。または、IE と Firefox の両方で window.frameName.location = "xxx.html" を使用してフレームのコンテンツを切り替えます。
フレーム内のパラメータを親ウィンドウに戻す必要がある場合は、frme でparentを使用できます。親ウィンドウにアクセスします。例如:parent.document.form1.filename.value="Aqing";
14.body问题
Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在.
例如:
Firefox: