1.firefox は innerText をサポートできません。
Firefox は innerHTML をサポートしますが、innerText はサポートしません。innerText を実装するために textContent をサポートしますが、余分なスペースもデフォルトで保持されます。 textContent が使用されない場合、文字列に HTML コードが含まれていない場合は、代わりに innerHTML を使用できます。
2. Web コンテンツの選択を禁止します:
通常、IE では js を使用します: obj.onselectstart=function(){return false;}
Firefox は CSS:-moz-user-select:none
3. フィルターのサポート (例: 透明フィルター):
IE:フィルター:アルファ(不透明度=10);
Firefox:-moz-opacity:.10;
4. イベントをキャプチャします:
IE: obj.setCapture()、obj.releaseCapture()
Firefox: document.addEventListener("mousemove",mousemovefunction,true);
document.removeEventListener("mousemove",mousemovefunction,true);
5. マウスの位置を取得します:
IE: イベント.クライアントX、イベント.クライアントY
Firefox: イベントオブジェクトを渡すにはイベント関数が必要です
obj.onmousemove=function(ev){
X=ev.pageX;Y=ev.pageY;
}
6. DIV とその他の要素の境界問題:
例: div::{width:100px;height:100px;border:#000000 1px Solid;}
の CSS を設定します。
IEの場合: div幅(境界線の幅を含む): 100px、divの高さ(境界線の幅を含む): 100px;
そしてFirefox: divの幅(境界線の幅を含む): 102px、divの高さ(境界線の幅を含む): 102px;
したがって、IE と Firefox と互換性のあるこのドラッグ ウィンドウを作成する場合、js と css を記述するときに頭を使う必要があります。ここで 2 つのヒントを紹介します。
1. ブラウザの種類を決定します:
var isIE=document.all? true:false;
変数を書きました。 document.all 構文がサポートされている場合は isIE=true、そうでない場合は isIE=false
2. 異なるブラウザでの CSS 処理:
例: {border-width:0px! important;border-width:1px;}
Firefox では、この要素には枠線がありません。IE では、枠線の幅は 1px
です。
1.document.formName.item("itemName") の問題
解決策: document.formName.elements["elementName"] を一律に使用します。
2. コレクションオブジェクトの問題
解決策: コレクション クラス オブジェクトを取得するには、[] を一律に使用します。
3. カスタム属性の問題
解決策: getAttribute() を通じてカスタム属性を均一に取得します。
4.eval("idName") の問題
解決策: getElementById("idName") を一律に使用して、ID が idName である HTML オブジェクトを取得します。
5. 変数名がHTMLオブジェクトIDと同じである問題
回避策: document.idName の代わりに document.getElementById("idName") を使用します。エラーを減らすために、同じ HTML オブジェクト ID を持つ変数名を使用しないことをお勧めします。変数を宣言するときは、あいまいさを避けるために常に var キーワードを追加してください。
6.const問題
解決策: 定数を定義するには、一律に var キーワードを使用します。
7.input.type 属性の問題
解決策: input.type 属性を変更しないでください。変更する必要がある場合は、最初に元の入力を非表示にしてから、同じ位置に新しい入力要素を挿入します。
8.window.event の問題
解決策: イベントが発生する関数にイベント パラメーターを追加し、関数本体で var myEvent = evt?evt:(window.event?window.event:null)
を使用します (仮パラメーターが evt であると仮定します)。
例:
解決策: var myX =event.x ?event.pageX ?event.y:event.pageY;
質問 8 を考慮する場合は、event の代わりに myEvent を使用してください。
10.event.srcElement の問題
解決策: srcObj =event.srcElement ?event.srcElement:event.target;
を使用します。
質問 8 を考慮する場合は、event の代わりに myEvent を使用してください。
11.window.location.href の問題
回避策: window.location.href の代わりに window.location を使用します。もちろん、 location.replace() メソッドの使用を検討することもできます。
12. モーダルウィンドウと非モーダルウィンドウの問題
解決策: window.open(pageURL,name,parameters) を直接使用して、新しいウィンドウを開きます。
子ウィンドウのパラメータを親ウィンドウに戻す必要がある場合は、子ウィンドウで window.opener を使用して親ウィンドウにアクセスできます。親ウィンドウで子ウィンドウを制御する必要がある場合は、var subWindow = window.open(pageURL,name,parameters); を使用して、新しく開かれたウィンドウ オブジェクトを取得します。
13.Frame と iframe の問題
(1)フレームオブジェクト
にアクセスします
IE: このフレーム オブジェクトにアクセスするには、window.frameId または window.frameName を使用します。
Firefox: このフレーム オブジェクトにアクセスするには、window.frameName を使用します。
解決策: このフレーム オブジェクトにアクセスするには、一律に window.document.getElementById("frameId") を使用します。
(2) フレームコンテンツの切り替え
IE と Firefox の両方で、window.document.getElementById("frameId").src = "xxx.html" または window.frameName.location = "xxx.html" を使用してフレームのコンテンツを切り替えることができます。
フレーム内のパラメータを親ウィンドウに戻す必要がある場合は、フレーム内でparentキーワードを使用して親ウィンドウにアクセスできます。
14.本体読み込みの問題
問題の説明: Firefox の body オブジェクトは、ブラウザによって body タグが完全に読み取られる前に存在しますが、IE の body オブジェクトは、body タグがブラウザによって完全に読み取られた後に存在する必要があります。
[注意] IE6、Opera9、FireFox2 では上記の問題が発生しないことが確認されています。単純な JS スクリプトは、要素がまだ読み込まれていない場合でも、スクリプトより前に読み込まれているすべてのオブジェクトと要素にアクセスできます。
15. イベントデリゲートメソッド
を使用します。
解決策: document.body.onload=new Function('inject()'); または document.body.onload = function(){/* を使用します */}
【注意】Functionとfunctionの違い
16. アクセスされる親要素の違い
解決策: Firefox と IE は両方とも DOM をサポートしているため、obj.parentNode は obj の親ノードにアクセスするために一律に使用されます。
17.cursor:ハンド VS カーソル:ポインター
問題の説明: Firefox はハンドをサポートしていませんが、IE はポインターをサポートしています。どちらもハンド命令です。
18.インナーテキストの問題
問題の説明: innerText は IE では正常に動作しますが、innerText は FireFox では動作しません。
例:
コードをコピー
コードは次のとおりです:
19. オブジェクトの幅と高さの割り当ての問題
問題の説明: obj.style.height = imgObj.height のようなステートメントは FireFox では無効です。
解決策: obj.style.height = imgObj.height 'px';
を使用します。
20. テーブル操作の問題
解決策:
22. CSS の透明性の問題
IE: フィルター:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:不透明度:0.6。
【注意】両方書いて下にopacity属性を入れるのがベストです。
23.CSSの角丸問題
IE: IE7 より前のバージョンは角丸をサポートしていません。
[注意] 角丸の問題は CSS の古典的な問題であり、角丸を設定するには JQuery フレームセットを使用し、これらの複雑な問題は他の人に任せることをお勧めします。
CSS には問題が多すぎて、同じ CSS 定義でもページ規格が異なれば表示効果も異なります。開発に沿った提案としては、IE などの主流ブラウザを考慮して、テーブルの使用を減らし、CSS 定義をできる限り標準 DOM に基づいてページを作成する必要があります。 、Firefox、Opera。ところで、多くの場合、FF と Opera の CSS 解釈標準は CSS 標準に近く、より規範的です。