主要なデスクトップ ブラウザーで最も一般的なブラウザーの互換性の問題は何ですか?
重複しないでください。遭遇した問題に賛成票を投じてください。リストが自己ソートされることを願っています。「IE sux」は落とし穴ではありませんが、反対票を投じます。
[編集] はい、私はそれが世論調査であることを知っています - 私はポイントを集めるためにこれに回答を投稿しているのではありません - 私は実際に人々が通常何に遭遇するかを知ることに興味があります.
主要なデスクトップ ブラウザーで最も一般的なブラウザーの互換性の問題は何ですか?
重複しないでください。遭遇した問題に賛成票を投じてください。リストが自己ソートされることを願っています。「IE sux」は落とし穴ではありませんが、反対票を投じます。
[編集] はい、私はそれが世論調査であることを知っています - 私はポイントを集めるためにこれに回答を投稿しているのではありません - 私は実際に人々が通常何に遭遇するかを知ることに興味があります.
Internet Explorer 6 の透過 PNG。特に、AlphaImageLoader を使用する一般的な JavaScript を使用しない回避策では、 IE6 がロックされるという副作用が生じる可能性があるためです。
CSS - 最新のブラウザーでは大部分が整理されていますが、特にレイアウトに関してはまだ問題があります。
これは重要ではないことに注意してください。ただし、サイトを設計するときに、ほとんどの場合、これは互換性の問題です。
キャッシング、および前のページのハッシュ。
IE 6 では、許容されるスタックの深さに非常に小さな制限があることがわかりました。
ある時点で、ドキュメント内の要素の位置を取得するために素敵な再帰関数を使用していました。
function getOffsetTop (element) {
var offset = 0;
if (element.offsetTop)
offset = offset + element.offsetTop;
if (element.offsetParent)
offset = offset + getOffsetTop(element.offsetParent);
return offset;
}
残念ながら、非常に深いノード階層の要素に対してこのメソッドを呼び出すと、IE は最大スタック サイズを超えていると警告します (正確なエラー メッセージは忘れてしまいました)。これを回避するには、反復的なアプローチを使用してスタック サイズを小さく保つ必要がありました。
function getOffsetTop (element) {
var offset = 0;
if (element.offsetTop)
offset = offset + element.offsetTop;
var parent = element.offsetParent;
while (parent) {
if (parent.offsetTop)
offset = offset + parent.offsetTop;
parent = parent.offsetParent;
}
return offset;
}
浮きます。IE6/7 には無数の float バグがあります - Peekabo、guillotine、double margin、escaping floats、3px gap、重複文字、多数の消去バグ、利用可能なスペースに関連するバグ...
メモリ管理が問題になる可能性があります.Firefoxは複雑なオブジェクトを適切にクリーンアップするのにかなり上手になっていますが、さまざまなガベージコレクターがさまざまなタイプの循環参照で窒息します.
Quirksmodeには、注意が必要な多くの相違点の包括的なリストがあります!-)
-- しかし、彼は、ネット上の他のほとんどのサイトやブロガーと同様に、彼のやり方に集中しており、その結果、マイナーまたはメジャーなバグや矛盾が発生しています ...
私が考えることができる最も一般的なものは、IE6 とボックス モデルのバグです。調べる!
具体的には、私が考えている問題は、開発者がすべてラッパー DIV 内に収まると考えているフロートDIVがある場合ですが、少し大きいため IE6 にはありません。
したがって、3 つの列ではなく 2 つの列になり、3 つ目の列は画面の下部のどこかに表示されます。
+-------------------------------+
|+------+ +-----------+ +------+|
|| | | | | ||
|| foo | | bar | | baz ||
|| | | | | ||
|| | | | | ||
|+------+ +-----------+ +------+|
+-------------------------------+
しかし、あなたは得る:
+-------------------------------+
|+--------+ +------------+ |
|| | | | |
|| foo | | bar | |
|| | | | |
|| | | | |
|+--------+ +------------+ |
|+------+ |
|| | |
|| | |
|| baz | |
|| | |
|| | |
|+------+ |
+-------------------------------+
私が作成したすべての固定幅の中央揃えサイト (つまり、すべてを中央揃えにするために div を含む一部で「margin:0 auto」を使用) は、テストして「ハック」を適用するまで IE6 で動作しません。これは毎回私を取得します。
XMLHttpRequest を実行し、関数 'onreadystatechange' を実行すると、XMLHttpRequest.responseText プロパティには、その時点で Firefox に読み込まれたデータが含まれますが、IE (およびおそらく Safari) には含まれません。
これにより、実行進行状況メーターの表示に使用するために、これらのブラウザーで部分的なデータがキャプチャーされるのを防ぎます。