IE と Firefox 間の一般的な互換性の問題_PHP チュートリアル
1. document.form.itemの問題
(1)既存の問題点:
既存のコードには document.formName.item("itemName") のようなステートメントが多数あり、Firefox では実行できません
(2)解決策:
代わりに document.formName.elements["elementName"] を使用してください
2.コレクションオブジェクトの問題
(1)既存の問題点:
既存のコード内の多くのコレクションオブジェクトは、アクセスするときに()を使用しますが、IEはそれを受け入れることができますが、Firefoxは受け入れられません。
(2)解決策:
代わりに添字演算として[]を使用してください。例:
document.forms("formName") は document.forms["formName"] に変更されます。
別の例:
document.getElementsByName("inputName")(1) を document.getElementsByName("inputName")[1] に変更しました
3. window.event
(1)既存の問題点:
window.eventの使用はFirefoxブラウザでは実行できません
(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)を使ってid idNameのHTMLオブジェクトを取得できますが、Firefoxではできません。
(2)解決策
eval(idName)の代わりにgetElementById(idName)を使用してください。
6. 変数名がHTMLオブジェクトのIDと同じである問題
(1)既存の問題点
Firefoxでは、オブジェクトIDはHTMLオブジェクトの名前として使用されないため、IEで動作するHTMLオブジェクトIDと同じ変数名を使用できます。
(2)解決策
変数を宣言するときは、あいまいさを避けるために常に var を追加して、IE で正常に実行できるようにします。
さらに、エラーを減らすために、HTML オブジェクト ID と同じ変数名を使用しないことをお勧めします。
7. Event.x と events.y の問題
(1)既存の質問
IE では、イベント オブジェクトには x、y 属性がありますが、Firefox にはありません。
(2)解決策
Firefox では、event.x に相当するのは、event.pageX です。ただし、event.pageX は IE では使用できません。したがって、event.x の代わりに、event.clientX が使用されます。この変数はIEにも存在します。 events.clientX と events.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 の主な違いは次のとおりです:
frameタグに以下の属性が記述されている場合:
すると、IE は ID または名前を通じてこのフレームに対応するウィンドウ オブジェクトにアクセスできますが、Firefox は名前を通じてのみこのフレームに対応するウィンドウ オブジェクトにアクセスできます。たとえば、上記のフレーム タグがトップ ウィンドウ内の htm に記述されている場合、次に、このウィンドウ オブジェクトにアクセスするには、次のように IE にアクセスします: window.top.frameId または window.top.frameName
Firefox: このウィンドウ オブジェクトには window.top.frameName を通じてのみアクセスできます
さらに、Firefox と IE の両方で、window.top.document.getElementById("frameId") を使用してフレーム タグにアクセスし、window.top.document.getElementById("testFrame").src = 'xx.htm を使用できます。 ' フレームの内容を切り替えるには、window.top.frameName.location ='xx.htm' を使用してフレームの内容を切り替えることもできます。フレームとウィンドウの説明については、「ウィンドウとフレーム」の記事を参照してください。 bbs と /test/js/test_frame の / ディレクトリ下のテスト
9. Firefox では、定義した属性は getAttribute() を通じて取得する必要があります
10. Firefox にはparentElement parement.children はありませんが、
parentNodeparentNode.childNodes childNodesの添え字の意味はIEとFirefoxでは異なります。FirefoxではDOM仕様となっており、childNodesには空のテキストノードが挿入されます。
この問題は通常、node.getElementsByTagName() を使用して回避できます。
HTML でノードが欠落している場合、IE と Firefox はparentNode を異なる方法で解釈します。例えば
<入力/>
テーブル>
フォーム>
Firefox の input.parentNode の値は form ですが、IE の input.parentNode の値は空のノードです
FirefoxにはノードのremoveNodeメソッドがありません。次のメソッドnode.parentNode.removeChild(node)を使用する必要があります
11.const問題
(1)既存の質問:
constキーワードはIEでは使用できません。 const constVar = 32; など。これは IE の構文エラーです。
(2)解決策:
const を使用せず、代わりに var を使用してください。
12. ボディオブジェクト
Firefox の本体はブラウザーによって body タグが完全に読み取られる前に存在しますが、IE の本体は本体が完全に読み取られた後に存在する必要があります
13. URLエンコード
js で URL を記述する場合は、直接記述しないでください。たとえば、 var url = 'xx.jsp?objectName=xx&objectEvent=xxx'; となる可能性が高くなります。 URL は正常に表示されず、パラメーターが正しくありません。サーバーに送信されると、サーバーは通常、パラメーターが見つからないことを報告します。これは、tpl が XML に準拠しているためです。通常、Firefox は js 内の & を認識できません。
14. ノード名とタグ名の問題
(1)既存の質問:
Firefoxでは、すべてのノードにnodeName値がありますが、textNodeにはtagName値がありません。 IE では、nodeName の使用に問題があるようです (具体的な状況はテストされていませんが、私の IE は何度か停止しました)。
(2)解決策:
tagName を使用しますが、それが空かどうかを検出する必要があります。
15. 要素の属性
input.type 属性は IE では読み取り専用ですが、Firefox では変更できます
16. document.getElementsByName() と document.all[name] の問題
(1)既存の質問:
IEではgetElementsByName()やdocument.all[name]ではdiv要素を取得できません(他にも取得できない要素があるかは不明)。
17. マウスオーバー時の変形用の最も単純なCSSが変更されます
cursor:pointer;/*ff は、cursor:hand をサポートしていません*/ dw8 で自動的に生成される属性には属性 hand がありません。標準のものは pointer
です。18.ff はフィルターをサポートしていません。最も一般的な半透明はサポートされていません。
フィルター: Alpha(Opacity=50); /* IE の場合 */
不透明度: .5;/* Firefox の場合 */
style="-moz-opacity:0.5; filter:alpha(opacity=50);cursor:hand;" onmouseover="this.style.MozOpacity=1;
19.ffは式をサポートしていません。例えば、リンクの境界線を削除するには、別のCSSを記述する必要があります
:focus { アウトライン: なし } /* Firefox の場合 */
;20.ff は div スクロール バーのカラー設定をサポートしていません。現時点では、これを置き換える良い方法はありません。
位置: 絶対; 上: 10ピクセル; 高さ: 135ピクセル; line-height:120%;text-align:left; font-family:"宋体";word-break:break-all;
オーバーフロー-Y:自動;オーバーフロー-X:いいえ; スクロールバーの矢印の色: 赤; スクロールバーのトラックの色: #F6F6F6; スクロールバーの影の色: #F6F6F6; スクロールバー-ダークシャドウ-カラー:#F6F6F6;スクロールバー-3Dライト-カラー:#F6F6F6;スクロールバー-ハイライト-カラー:#F6F6F6;
}
FFでは全く効果がありません。
21.ie、テキストの下に水平線が表示されます
border-width: 0px 0px 1px 0px; ff のテキストに移動します。 (マニュアルを確認しましたが、解決策が見つかりませんでした。不思議な感じがします~~ ffの耐障害性が低すぎることが判明しました。これは、幅: 186px; 高さ: 0px; が原因であることがわかりました。実際には、 a:haver は優れた属性を継承しており、さまざまなスタイルを定義するだけで、CSS の理解が深まり、CSS を提供するのに役立ちます。
.onelinksdiv a:hover {
表示: ブロック;ボーダー スタイル: ソリッド;カラー: #ff0000;ボーダー幅: 0px 0px 1px 0px
表示: ブロック;ボーダー スタイル: ソリッド; ボーダー幅: 0px 0px 1px 0px; 幅: 186px; 高さ: 0px; フォント サイズ: 14px; テキスト整列: 右; */
}//以下の書き方はieでは正常ですが、ffでは間違っています
.onelinksdiv a:hover {
表示: ブロック;ボーダー: #ff0000 ボーダー幅: 0px 0px 1px 0px;
幅: 186px;高さ: 0px; カラー: #ff0000; フォントサイズ: 14px; テキスト整列: 右;
}
関連資料:
border-width:border-top-width border-right-width border-bottom-width border-left-width p#fourborders
{
ボーダー幅:太中細 12px;
}
4 つの値が定義されている場合、これらの 4 つの値は、上、右、下、左の境界線の幅の値になります (上の境界線から開始して反時計回りの順に移動します)。
以下の定義と同等
p #フォーボーダーズ
{
ボーダー上部の幅:太い
ボーダー右幅:中
ボーダーの下の幅:細い
ボーダー左の幅:12px;
}
22.ff は
overflow:hidden は body の下ではなく html タグの下に定義する必要があります
html{
オーバーフロー:非表示
}
23.ff はデータアイランドバインディングをサポートしていません
24.style="ワードブレイク:ブレイクオール"
Webページ内のセルの内容が1行を超える場合、IEブラウザで定義されている改行スタイルは通常使用できますが、Firefoxではstyle="word-break:break-all"はサポートされていません。拡張された IE 固有のプロパティは W3C 標準になっていないため、Firefox はまだサポートしていません。ただし、MS はこれを W3C に提出しており、W3C の CSS3 候補計画にも見られます。 W3C によって CSS3 標準として最終決定された後、Firefox がこのプロパティをサポートできることを願っています。その前に、ぜひお試しください
style="table-layout:fixed;word-wrap:break-word" (英語の場合は正常に折り返せません)
25. 現在、FF2.0はIEの名前アンカーをサポートしていません
次のような記述はサポートされていません: 戻る
W3C 構文によれば、 タグは常に href アドレスを検索し、そこにジャンプすることがわかりました。onclick イベントは ### アドレスと競合します。
//スペースがあり、アンカーポイントが機能します
スペースがないため、アンカーポイントは効果がありません
アンカーポイントの書き方は非常に特殊で、 のようになります。Firefox はアンカーポイントをサポートしていないため、id=#1 を追加する必要があります
同じページを静的に参照する場合は、次のように記述する必要があります: 、機能しません*** *ステータスページはJSを使用する必要があります
//{...} がないとスクリプトの不正な記述になります
;
システムのマウス スタイルをカスタマイズするユーザーを考慮していませんでした
;
Firefox を使用している人はたくさんいると思っていましたが、Web サイトの統計分析によると、Firefox は 3.18% しかなく、標準に準拠するには多大な努力が必要です。ただし、標準化は将来のメンテナンスと拡張に役立ち、テクノロジーを継続的に思い出させるのに役立ちます。
-->
質問 14: OVERFLOW-Y:auto;OVERFLOW-X:hidden; IE では no を使用して非表示にできますが、FireFox では hidden を使用する必要があります

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









ブルー スクリーン コード 0x0000001 の対処法。ブルー スクリーン エラーは、コンピューター システムまたはハードウェアに問題がある場合の警告メカニズムです。コード 0x0000001 は、通常、ハードウェアまたはドライバーの障害を示します。ユーザーは、コンピュータの使用中に突然ブルー スクリーン エラーに遭遇すると、パニックになり途方に暮れるかもしれません。幸いなことに、ほとんどのブルー スクリーン エラーは、いくつかの簡単な手順でトラブルシューティングして対処できます。この記事では、ブルー スクリーン エラー コード 0x0000001 を解決するいくつかの方法を読者に紹介します。まず、ブルー スクリーン エラーが発生した場合は、再起動を試みることができます。

終了コード 0xc000007b コンピューターを使用しているときに、さまざまな問題やエラー コードが発生することがあります。その中でも最も厄介なのが終了コード、特に終了コード0xc000007bです。このコードは、アプリケーションが正常に起動できず、ユーザーに迷惑がかかっていることを示しています。まずは終了コード0xc000007bの意味を理解しましょう。このコードは、32 ビット アプリケーションを 64 ビット オペレーティング システムで実行しようとしたときに通常発生する Windows オペレーティング システムのエラー コードです。それはそうすべきだという意味です

デバイスをリモートでプログラムする必要がある場合は、この記事が役に立ちます。あらゆるデバイスをプログラミングするためのトップ GE ユニバーサル リモート コードを共有します。 GE リモコンとは何ですか? GEUniversalRemote は、スマート TV、LG、Vizio、Sony、Blu-ray、DVD、DVR、Roku、AppleTV、ストリーミング メディア プレーヤーなどの複数のデバイスを制御するために使用できるリモコンです。 GEUniversal リモコンには、さまざまな機能を備えたさまざまなモデルがあります。 GEUniversalRemote は最大 4 台のデバイスを制御できます。あらゆるデバイスでプログラムできるトップのユニバーサル リモート コード GE リモコンには、さまざまなデバイスで動作できるようにするコードのセットが付属しています。してもいいです

0x000000d1 ブルー スクリーン コードは何を意味しますか? 近年、コンピューターの普及とインターネットの急速な発展に伴い、オペレーティング システムの安定性とセキュリティの問題がますます顕著になってきています。よくある問題はブルー スクリーン エラーで、コード 0x000000d1 もその 1 つです。ブルー スクリーン エラー、または「死のブルー スクリーン」は、コンピューターに重大なシステム障害が発生したときに発生する状態です。システムがエラーから回復できない場合、Windows オペレーティング システムは、画面上にエラー コードを含むブルー スクリーンを表示します。これらのエラーコード

マザーボード上の SPDIFOUT 接続線の順序 最近、ワイヤの配線順序に関する問題に遭遇しました。ネットで調べたところ、1、2、4がアウト、+5V、グラウンドに相当するという情報もあれば、1、2、4がアウト、グラウンド、+5Vに相当するという情報もありました。最善の方法は、マザーボードのマニュアルを確認することです。マニュアルが見つからない場合は、マルチメーターを使用して測定できます。最初にアースを見つけてから、残りの配線の順序を決定します。マザーボードの VDG 配線の接続方法 マザーボードの VDG 配線を接続するときは、VGA ケーブルの一端をモニターの VGA インターフェイスに差し込み、もう一端をコンピューターのグラフィックス カードの VGA インターフェイスに差し込む必要があります。マザーボードの VGA ポートに差し込まないよう注意してください。接続すると、次のことが可能になります

Python 描画をすぐに始めましょう: Bingdundun 描画のコード例 Python は学びやすく強力なプログラミング言語であり、Python の描画ライブラリを使用することで、さまざまな描画ニーズを簡単に実現できます。この記事では、Python の描画ライブラリ matplotlib を使用して、氷の簡単なグラフを描画します。ビンドゥンドゥンは子供たちに大人気のかわいいパンダです。まず、matplotlib ライブラリをインストールする必要があります。これはターミナルで実行することで実行できます

プログラマーとして、私はコーディング体験を簡素化するツールに興奮しています。人工知能ツールの助けを借りて、デモ コードを生成し、要件に応じて必要な変更を加えることができます。 Visual Studio Code に新しく導入された Copilot ツールを使用すると、自然言語によるチャット対話を備えた AI 生成コードを作成できます。機能を説明することで、既存のコードの意味をより深く理解できます。 Copilot を使用してコードを生成するにはどうすればよいですか?始めるには、まず最新の PowerPlatformTools 拡張機能を入手する必要があります。これを実現するには、拡張機能のページに移動し、「PowerPlatformTool」を検索して、[インストール] ボタンをクリックする必要があります。

Linux オペレーティング システムでファイルを操作するには、開発者がファイル、コード、プログラム、スクリプトなどを効率的に作成および実行できるようにするさまざまなコマンドとテクニックを使用する必要があります。 Linux 環境では、拡張子「.a」を持つファイルは静的ライブラリとして非常に重要です。これらのライブラリはソフトウェア開発において重要な役割を果たし、開発者が複数のプログラム間で共通の機能を効率的に管理および共有できるようにします。 Linux 環境で効果的なソフトウェア開発を行うには、「.a」ファイルの作成方法と実行方法を理解することが重要です。この記事では、Linux の「.a」ファイルのインストールと構成方法を包括的に紹介します。Linux の「.a」ファイルの定義、目的、構造、作成および実行方法について見てみましょう。 Lとは何ですか
