ホームページ ウェブフロントエンド jsチュートリアル IE と Firefox_javascript スキルに関する JavaScript 互換性に関する注意事項を整理する

IE と Firefox_javascript スキルに関する JavaScript 互換性に関する注意事項を整理する

May 16, 2016 pm 06:09 PM
ie 互換性 Firefox

1. document.form.item の問題
(1) 既存の問題:
既存のコードには document.formName.item("itemName") のような使用できないステートメントが多数あります。 Firefox の場合 (Firefox) で
(2) ソリューションを実行します:
代わりに document.formName.elements["elementName"] を使用します
(3) その他の
については、2 を参照してください
2 . コレクション クラス オブジェクトの問題
(1) 既存の問題:
既存のコード内の多くのコレクション クラス オブジェクトは、アクセス時に () を使用できますが、Firefox では受け入れられません。
(2) 解決策:
添字演算として代わりに [] を使用します。例: document.forms("formName") は document.forms["formName"] に変更されます。
別の例: document.getElementsByName("inputName")(1) が document.getElementsByName("inputName")[1]
(3) その他
3 に変更されました。 >
(1) 既存の問題:
Firefox ブラウザでは window.event を使用しても実行できません
(2) 解決策:
Firefox のイベントはイベントが発生する場面でしか使用できません。まだ解決できません。次のように変更できます:
元のコード (IE で実行可能):

...


新しいコード (IE および Firefox で実行可能) :
...


さらに、新しいコードの最初の行が変更されず、古いコードと同じである場合 (つまり、gotoSubmit 呼び出しは行われません)パラメーターを指定します)、IE でのみ機能します。実行されますが、エラーは発生しません。したがって、このソリューションの tpl 部分は依然として古いコードと互換性があります。
4. HTML オブジェクトの ID をオブジェクト名として使用する問題

(1) 既存の問題
IE では、HTML オブジェクトの ID をそのままオブジェクト名として使用できます。ドキュメントの下位オブジェクト変数名。 Firefox にはありません。
(2) 解決策
オブジェクト変数として idName の代わりに getElementById("idName") を使用します。
5. idName 文字列を使用してオブジェクトを取得する場合の問題点

(1) 既存の問題点
IE では、eval(idName) を使用して idName を持つ HTML オブジェクトを取得できます。 Firefoxで。
(2) 解決策
eval(idName)の代わりにgetElementById(idName)を使用します。
6. 変数名がHTMLのオブジェクトIDと同じである問題

(1) 既存の問題
FirefoxではオブジェクトIDが名前として使用されていないため、 HTML オブジェクトが使用可能 IE では HTML オブジェクト ID と同じ変数名が使用できます。
(2) 解決策
変数を宣言するときは、IE でも正常に動作するように、曖昧さを避けるために必ず var を付けます。
さらに、エラーを減らすために、HTML オブジェクト ID と同じ変数名を使用しないことをお勧めします。
(3) その他
質問 4 を参照
7. Event.x およびevent.y の問題

(1) 既存の問題
IE では、イベント オブジェクトがありますは x、y 属性であり、Firefox では使用できません。
(2) 解決策
Firefox では、event.x に相当するのは、event.pageX です。ただし、event.pageX は IE では使用できません。
したがって、event.x の代わりに、event.clientX が使用されます。この変数はIEにも存在します。
Event.clientX とevent.pageX には微妙な違いがありますが (ページ全体にスクロール バーがある場合)、ほとんどの場合は同等です。
まったく同じにしたい場合は、もう少し問題があります:
mX =event.x ?event.x :event.pageX
event.x の代わりに mX を使用します。 >(3)その他
event.layerXはIEとFirefoxに存在しますが、具体的な意味に違いがあるかどうかは未検証です。
8. フレームについて
(1) 既存の問題
IE では window.testFrame を使用してフレームを取得できますが、Firefox では取得できません
(2) 解決策
フレームの使用における Firefox と IE の主な違いは次のとおりです:
フレーム タグに次の属性が記述されている場合:

これにより、IE は ID または名前ウィンドウを介して対応するフレームにアクセスできますオブジェクト
と Firefox は、名前
を通じてのみ、このフレームに対応するウィンドウ オブジェクトにアクセスできます。 たとえば、上記のフレーム タグがトップ ウィンドウ内の htm に記述されている場合、次のように
ie にアクセスできます。 window.top .frameId または window.top.frameName を使用してこのウィンドウ オブジェクトにアクセスします
Firefox: これが window.top.frameName
経由でこのウィンドウ オブジェクトにアクセスする唯一の方法です。 さらに、window.top.document はFirefox と IE の両方で getElementById("frameId") を使用してフレーム タグ
にアクセスし、window.top.document.getElementById("testFrame").src = 'xx.htm' を使用してコンテンツを切り替えることができます。フレーム
を使用することもできます。top.frameName.location = 'xx.htm' を使用してフレーム
の内容を切り替えることもできます。フレームとウィンドウの説明については、「ウィンドウとフレーム」の記事を参照してください。 bbs
と /test/js/test_frame/ ディレクトリ内のテスト
----adun 2004.12.09 変更
9. Firefox では、定義した属性は getAttribute によって取得する必要があります。 ()
10. Firefox では、parentElement parement.children はありませんが、
parentNodeparentNode.childNodes
childNodes の添え字の意味は、IE と Firefox では DOM を使用します。指定すると、空のテキスト ノードが childNodes に挿入されます。
通常、この問題は、node.getElementsByTagName() を使用して回避できます。
HTML でノードが欠落している場合、IE と Firefox は、parentNode を異なる方法で解釈します。たとえば、





Firefox の input.parentNode の値は form ですが、IE の input.parentNode の値は空のノードです
Firefox の Node には、removeNode メソッドがありません。以下のメソッド node.parentNode.removeChild(node)
11.const の問題点
(1) 既存の問題点:
IE では const キーワードは使用できません。 const constVar = 32; など。これは IE の構文エラーです。
(2) 解決策:
const を使用せず、代わりに var を使用してください。
12. body オブジェクト
Firefox の本体はブラウザーによって body タグが完全に読み取られる前に存在しますが、IE は本体が完全に読み取られた後に存在する必要があります
13.
js で URL を記述する場合は、直接記述してください。たとえば、var url = 'xx.jsp?objectName=xx&objectEvent=xxx'; となります。 = url then URL が正常に表示されず、パラメーターがサーバーに正しく送信されない可能性が非常に高くなります
通常、サーバーはパラメーターが見つからないというエラーを報告します
もちろん、例外はありますtpl にある場合、tpl は xml 仕様に準拠しているため、要件 & は & として記述されます。
一般に、Firefox は js 内の & を認識できませんが、textNode には tagName 値がありません。 IE では、nodeName
の使用に問題があるようです (具体的な状況をテストしていませんが、IE が何度か停止しました)。
(2) 解決策: tagName を使用しますが、それが空かどうかを検出する必要があります。
15. 要素の属性

input.type 属性は IE では読み取り専用ですが、Firefox

16 では変更できます。 .all[name ] 問題
(1) 既存の問題:
IE では、getElementsByName() も document.all[name] も div 要素を取得するために使用できません (他に取得できない要素はありますか)わかりませんか?)
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Bluetooth 5.3 と 5.2 バージョンの比較と差異分析 Bluetooth 5.3 と 5.2 バージョンの比較と差異分析 Dec 28, 2023 pm 06:08 PM

現在、多くの携帯電話が Bluetooth バージョン 5.3 をサポートしていると主張していますが、Bluetooth 5.3 と 5.2 の違いは何ですか? 実際、これらは基本的に Bluetooth 5 のその後の更新バージョンであり、ほとんどの性能と機能に大きな違いはありません。 Bluetooth 5.3 と 5.2 の違い: 1. データ レート 1 と 5.3 は、最大 2Mbps のより高いデータ レートをサポートできます。 2. 5.2 は最大 1Mbps しか到達できませんが、5.3 はより高速かつ安定してデータを送信できることを意味します。 2. 暗号化制御の強化 2. Bluetooth 5.3 では、暗号化キーの長さの制御オプションが向上し、セキュリティが向上し、アクセス制御やその他のデバイスへの接続が向上します。 3. 同時に、管理者の制御がよりシンプルになるため、5.2 では不可能だった接続がより便利かつ高速になります。

i7-7700 が Windows 11 にアップグレードできない場合の解決策 i7-7700 が Windows 11 にアップグレードできない場合の解決策 Dec 26, 2023 pm 06:52 PM

i77700 のパフォーマンスは win11 を実行するのに完全に十分ですが、ユーザーは i77700 を win11 にアップグレードできないことがわかります。これは主に Microsoft によって課された制限が原因であるため、この制限をスキップする限りインストールできます。 i77700 は win11 にアップグレードできません: 1. Microsoft が CPU バージョンを制限しているためです。 2. win11 に直接アップグレードできるのは、Intel の第 8 世代以降のバージョンのみです 3. i77700 は第 7 世代として、win11 のアップグレードのニーズを満たすことができません。 4. ただし、i77700はパフォーマンス的にはwin11を快適に使用するのに完全に可能です。 5. したがって、このサイトの win11 直接インストール システムを使用できます。 6. ダウンロードが完了したら、ファイルを右クリックして「ロード」します。 7. ダブルクリックして「ワンクリック」を実行します。

Go 言語は Linux システム上でどの程度互換性がありますか? Go 言語は Linux システム上でどの程度互換性がありますか? Mar 22, 2024 am 10:36 AM

Go 言語は Linux システムとの互換性が非常に優れており、さまざまな Linux ディストリビューション上でシームレスに実行でき、さまざまなアーキテクチャのプロセッサをサポートします。この記事では、Linux システムにおける Go 言語の互換性を紹介し、具体的なコード例を通じてその強力な適用性を示します。 1. Go 言語環境をインストールする Linux システムへの Go 言語環境のインストールは非常に簡単で、対応する Go バイナリ パッケージをダウンロードし、関連する環境変数を設定するだけです。 Ubuntu システムに Go 言語をインストールする手順は次のとおりです。

機内モードで Bluetooth ヘッドフォンを使用できますか? 機内モードで Bluetooth ヘッドフォンを使用できますか? Feb 19, 2024 pm 10:56 PM

現代技術の継続的な発展により、ワイヤレス Bluetooth ヘッドセットは人々の日常生活に欠かせないものになりました。ワイヤレスヘッドホンの登場により両手が解放され、音楽や通話などのエンターテインメントをより自由に楽しめるようになりました。ただし、飛行機に乗るときは、携帯電話を機内モードにするように求められることがよくあります。そこで質問は、機内モードで Bluetooth ヘッドフォンを使用できるかということです。この記事では、この疑問について考察していきます。まず、機内モードの機能と意味を理解しましょう。機内モードは携帯電話の特別なモードです

win11でie11ブラウザが使えない場合はどうすればいいですか? (win11ではIEブラウザは使用できません) win11でie11ブラウザが使えない場合はどうすればいいですか? (win11ではIEブラウザは使用できません) Feb 10, 2024 am 10:30 AM

ますます多くのユーザーが win11 システムにアップグレードし始めています。各ユーザーの使用習慣が異なるため、多くのユーザーは依然として ie11 ブラウザーを使用しています。では、win11 システムで ie ブラウザーを使用できない場合はどうすればよいでしょうか? Windows11はIE11をまだサポートしていますか?解決策を見てみましょう。 win11でie11ブラウザが使えない問題の解決策 1. まず、スタートメニューを右クリックし、「コマンドプロンプト(管理者)」を選択して開きます。 2. 開いたら、「Netshwinsockreset」と直接入力し、Enter キーを押して確定します。 3. 確認後、「netshadvfirewallreset&rdqu」と入力します。

WIN10の互換性が失われた、それを回復する手順 WIN10の互換性が失われた、それを回復する手順 Mar 27, 2024 am 11:36 AM

1. プログラムを右クリックし、開いたプロパティウィンドウに [互換性] タブがないことを確認します。 2. Win10 デスクトップで、デスクトップ左下のスタートボタンを右クリックし、ポップアップメニューの[ファイル名を指定して実行]を選択します。 3. Win10 の実行ウィンドウが開きます。ウィンドウに「gpedit.msc」と入力し、[OK] ボタンをクリックします。 4. [ローカル グループ ポリシー エディター] ウィンドウが開くので、[コンピューターの構成/管理用テンプレート/Windows コンポーネント] メニュー項目をクリックします。 5. 開いた Windows コンポーネント メニューで [アプリケーション互換性] メニュー項目を見つけ、右側のウィンドウで [プログラム互換性プロパティ ページの削除] 設定項目を見つけます。 6. 設定項目を右クリックし、ポップアップメニューで

win10 ソフトウェアとの win11 互換性の問題の詳細な説明 win10 ソフトウェアとの win11 互換性の問題の詳細な説明 Jan 05, 2024 am 11:18 AM

win10システムのソフトウェアは完璧に最適化されていますが、最新のwin11ユーザーにとって、このシステムがサポートされるかどうかは誰もが気になるはずですので、以下ではwin10をサポートしていないwin11ソフトウェアについて詳しく紹介します。一緒に出かけます。 win11 は win10 ソフトウェアをサポートしていますか: 1. Win10 システム ソフトウェア、さらには Win7 システム アプリケーションにも十分な互換性があります。 2. Win11 システムを使用する専門家からのフィードバックによると、現時点ではアプリケーションの非互換性の問題はありません。 3. したがって、自信を持って大胆にアップグレードできますが、一般ユーザーは、Win11 の正式バージョンがリリースされるまでアップグレードする前に待つことをお勧めします。 4. Win11 は互換性が良いだけでなく、Windo も備えています

win10で互換性を確保するためのドライバーダウンロード方法を紹介 win10で互換性を確保するためのドライバーダウンロード方法を紹介 Jan 01, 2024 pm 06:59 PM

ハードウェア デバイスのドライバーは、このデバイスを通常に使用するために最も重要なプログラムの 1 つですが、ダウンロードしてインストールするドライバーに互換性がない場合があります。実際、システムは互換性のあるドライバーを自動的に見つけてダウンロードし、インストールすることができます。インストールします。一緒に見てみましょう。試してみてください。 win10 ドライバーと互換性を持たせる方法は? 1. まずデスクトップでこのコンピューターを見つけて右クリックし、[プロパティ] を選択して開きます 2. 次に左側で [デバイス マネージャー] を見つけて開きます 3. ダウンロードしたいデバイスを見つけて、デバイス マネージャーでインストールし、右クリックして [ドライバーの更新] を選択します。 4. 次に、[更新されたドライバー ソフトウェアを自動的に検索する] を選択します。 5. 最後に、しばらく待つと、次のウィンドウが表示されます。ドライバーのインストールは完了です。 。

See all articles