検索
ホームページウェブフロントエンドhtmlチュートリアルIE ブラウザと Firefox ブラウザの互換性の問題と解決策_html/css_WEB-ITnose

誰でもコードを読みやすくするために、Internet Explorer の代わりに IE が使用され、Mozzila Firefox の代わりに MF/FF が使用されます:


1, //window.event
IE : window.event オブジェクトがあります
FF: window.event オブジェクトがありません。
イベントオブジェクトをパラメータとして関数に渡すことができます。 onmousemove=doMouseMove(event) など
解決策: varevent =event || window.event; 例:

<script>function test(event) {var event = event || window.event;//do Something}</script><input type="button" value="click" onclick="test(event)"/><br /><br />

2, //マウスの現在の座標
IE:event.x とevent.y。
FF:event.pageX およびevent.pageY。
ユニバーサル: どちらにも、event.clientX プロパティとevent.clientY プロパティがあります。

//マウスの現在の座標 (プラス、スクロール バーが回転した距離)
IE:event.offsetX およびevent.offsetY。
FF:event.layerX とevent.layerY。

解決策の例:

<script>function test(event) {var event = event || window.event;//or var event = event ? event : window.event;//这两种都可以,也可以用if else(这简写)var x = event.offsetX || event.layerX;var y = event.offsetY || event.layerY;//do Something}</script><div onmousedown="test(event)"></div><br /><br />

3. //event.srcElement の問題
説明: IE では、イベント オブジェクトには srcElement 属性があり、Firefox では、even オブジェクトに target 属性がありません。ただし、srcElement 属性はありません。
解決策: IE ではevent.srcElement、Firefox では
event.target の代わりに obj (obj =event.srcElement ?event.srcElement :event.target;)
を使用してください。イベントの互換性の問題にも注意してください。 。
4 .popularTarget || e.toElement;

5. // ラベルの x および y 座標位置: style.posLeft および style.posTop
IE: はい。
FF: いいえ。
共通: object.offsetLeft と object.offsetTop。

6, //フォーム IE の高さと幅: document.body.offsetWidth および document.body.offsetHeight.注: 現時点では、ページには body タグが必要です。
FF: window.innerWidth と window.innerHegiht、
と document.documentElement.clientWidth と document.documentElement.clientHeight。
共通: document.body.clientWidth と document.body.clientHeight。

7, // イベントを追加
IE: element.attachEvent("onclick", function);.
FF: element.addEventListener("クリック"、関数、true)。
共通: element.onclick=function。 onclick イベントも使用できますが、onclick と上記 2 つのメソッドの効果は異なります。
onclick は 1 つのプロセスのみを実行しますが、attachEvent と addEventListener はプロセスのリスト、つまり複数のプロセスを実行します。

例: element.attachEvent("onclick", func1);

element.attachEvent("onclick", func2) とすると、func1 と func2 の両方が実行されます。


8. //ラベルのカスタム属性

IE: ラベル div1 に属性値が定義されている場合、その値は div1.value および div1["value"] によって取得できます。
FF: div1.value および div1["value"] を使用して取得することはできません。
一般: div1.getAttribute("value")。

9, //document.form.item の問題 IE: 既存の問題: 既存のコードには document.formName.item("itemName") のようなステートメントが多数あり、MF
FF では実行できません。 /IE: document.formName.elements["elementName"]

10. //コレクション/配列クラス オブジェクトの問題

(1) 既存の問題: 既存のコード内の多くのコレクション クラス オブジェクトは () を使用して取得されます。 IE では受け入れられますが、MF では受け入れられません。
(2) 解決策:
添字演算として代わりに [] を使用します。例: document.forms("formName") は document.forms["formName"] に変更されます。

別の例: document.getElementsByName("inputName")(1) を document.getElementsByName("inputName")[1] に変更しました

// HTML オブジェクトの ID をオブジェクトとして使用する問題name
IE では、HTML オブジェクトの ID を document の下位オブジェクトの変数名として直接使用できます。 MFにはありません。
解決策: オブジェクト変数として idName の代わりに getElementById("idName") を使用します。


12. //idName 文字列を使用したオブジェクトの取得に関する問題

IE では、eval(idName) を使用して ID idName を持つ HTML オブジェクトを取得できますが、MF ではできません。 解決策: eval(idName) の代わりに getElementById(idName) を使用します。

13. //変数名がHTMLオブジェクトのIDと同じである問題

MFではHTMLオブジェクトの名前としてオブジェクトIDを使用しないため、同じ変数名を使用できますHTML オブジェクト ID として使用されますが、IE では使用されません。 解決策: 変数を宣言するときは、あいまいさを避けるために常に var を追加して、IE でも正常に実行できるようにします。また、エラーを減らすために、HTML オブジェクト ID と同じ変数名を使用しないことをお勧めします。

14、//document.getElementsByName() 和 document.all[name] 的问题
现有问题:在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素。
(是否还有其它不能取的元素还不知道)。

 

15、//document.all
Firefox可以兼容document.all, 但会生成一条警告。可以用getElementById("*")
或者 getElementByTagName("*")来代替,不过对于document.all.length等属性,则完全不兼容。

 

16、//input.type属性问题
说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写

 

17、//window.location.href问题
说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,
只能使用window.location
解决方法:使用window.location来代替window.location.href

 

18、//模态和非模态窗口问题
说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能
解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。
如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口.
例如:var parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";

 

19、//body问题
Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全载入之后才存在。

 

20、//事件委托方法
IE:document.body.onload = inject; //Function inject()在这之前已被实现
FF:document.body.onload = inject();

 

21、//firefox与IE的父元素(parentElement)的区别
IE:obj.parentElement
FF:obj.parentNode
解决方法: 因为FF与IE都支持DOM,因此使用obj.parentNode是不错选择

 

22、//innerText在IE中能正常工作,但是innerText在FireFox中却不行.

需用textContent

//FireFox中设置HTML标签的style时,所有位置性和字体尺寸的值必须后跟px。这个ie也是支持的。

 

23、//父节点、子节点和删除节点
IE:parentElement、parement.children,element.romoveNode(true)。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。


24、//对select的options集合操作
枚举元素除了[]外,SelectName.options.item()也是可以的, 另外SelectName.options.length,
SelectName.options.add/remove都可以在两种浏览器上使用。
注意在add后赋值元素,否则会失败
动态删除select中的所有options:
document.getElementById("ddlResourceType").options.length=0;
动态删除select中的某一项option:
document.getElementById("ddlResourceType").options.remove(indx);
动态添加select中的项option:
document.getElementById("ddlResourceType").options.add(new Option(text,value));
IE FF 动态删除通用方法:
document.getElementById("ddlResourceType").options[indx] = null;

 

25、//捕获事件
曾经遇到的问题:
FF没有setCapture()、releaseCapture()方法
IE中的解决方法:
obj.setCapture();
obj.releaseCapture();
FF火狐中的解决办法:

window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);if (!window.captureEvents) {o.setCapture();}else {window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);}if (!window.captureEvents) {o.releaseCapture();}else {window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);}<br /><br /><strong>26、//禁止选取网页内容</strong>

FF需要用CSS禁止,IE用JS禁止
解决方法:
IE: obj.onselectstart = function() {return false;}
FF: -moz-user-select:none;


27、//画图
IE:VML
FF:SVG

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLドキュメントのルートタグは何ですか?HTMLドキュメントのルートタグは何ですか?Apr 29, 2025 am 12:10 AM

Theroottaginanhtmldocumentis.itservesStop-levellementThateChationCothercontent、ProperDocumentsTurcuteRuctureAndBrowsingを保証します。

HTMLタグと要素は同じものですか?HTMLタグと要素は同じものですか?Apr 28, 2025 pm 05:44 PM

この記事では、HTMLタグは要素を定義するために使用される構文マーカーであり、要素はタグやコンテンツを含む完全なユニットであると説明しています。彼らは協力してWebPages.Characterカウントを構築するために協力します:159

&lt; head&gt;の重要性は何ですかおよび&lt; body&gt; HTMLのタグ?&lt; head&gt;の重要性は何ですかおよび&lt; body&gt; HTMLのタグ?Apr 28, 2025 pm 05:43 PM

この記事では、&lt; head&gt;の役割について説明します。および&lt; body&gt; HTMLのタグ、ユーザーエクスペリエンスへの影響、およびSEOの影響。適切な構造化により、ウェブサイトの機能と検索エンジンの最適化が強化されます。

&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ?&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ?Apr 28, 2025 pm 05:42 PM

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

HTMLのドキュメントで使用されている文字セットを示す方法を説明してください。HTMLのドキュメントで使用されている文字セットを示す方法を説明してください。Apr 28, 2025 pm 05:41 PM

記事では、UTF-8に焦点を当てたHTMLでのキャラクターエンコーディングの指定について説明します。主な問題:テキストの正しい表示を確保し、文字化けされたキャラクターの防止、SEOとアクセシビリティの強化。

HTMLのさまざまなフォーマットタグは何ですか?HTMLのさまざまなフォーマットタグは何ですか?Apr 28, 2025 pm 05:39 PM

この記事では、Webコンテンツの構築とスタイリングに使用されるさまざまなHTMLフォーマットタグについて説明し、テキストの外観に対する影響とアクセシビリティとSEOのセマンティックタグの重要性を強調しています。

「ID」属性とHTML要素の「クラス」属性の違いは何ですか?「ID」属性とHTML要素の「クラス」属性の違いは何ですか?Apr 28, 2025 pm 05:39 PM

この記事では、HTMLの「ID」属性と「クラス」属性の違いについて説明し、一意性、目的、CSS構文、および特異性に焦点を当てています。それらがWebページのスタイリングと機能にどのように影響するかを説明し、のベストプラクティスを提供する

HTMLの「クラス」属性とは何ですか?HTMLの「クラス」属性とは何ですか?Apr 28, 2025 pm 05:37 PM

この記事では、スタイリングとJavaScriptの操作の要素をグループ化するHTML「クラス」属性の役割を説明し、一意の「ID」属性とは対照的です。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター