質問

Internet Explorer 8で奇妙なバグを見つけました。たぶん誰かがそれを回避するのを手伝ってくれるかもしれません。

background-position-x を使用して要素の背景位置を取得しようとすると、クラッシュするIE8 を除き、Internet Explorerのすべてのバージョンが例外として動作します。

el.getStyle( 'background-position')を実行すると、すべてのブラウザで undefined を返すIE(6、7、および8)以外の正しい値が表示されます。

したがって、すべてのIEバージョンで el.getStyle( 'background-position-x')を使用します。

ただし、上記のコードでは

IE8がクラッシュします。

誰もが同様の問題を抱えていましたか

役に立ちましたか?

解決

皆様のご協力に感謝します。これは本当にバグであり、次のシナリオでのみ機能します。

  1. cssは外部スタイルシートにロードする必要があります
  2. 要素にはインラインスタイルがありません

それを修正する方法は、たとえ汚れがひどい場合でも、要素にインラインスタイリングを追加することです。 IE8を幸せにし、他のすべてのブラウザーが動作するようにします。

テストしませんでしたが、に従ってチケット、FF2も同じ動作に苦しんでいます。

サイドノート:
@marcgg-本当に役に立たないので(そして、火炎戦争を開始することになります)、あなたの答えに投票するつもりでしたが、すべての真実は、jQueryはこの問題を明示していません。おそらく既にご存知のように、それはオプションではありません! ;)

@Fabien-IEは background-position-x をサポートしますが、W3Cが承認した構造の background-position のサポートはありません。

他のヒント

優れたクロスブラウザで動作する jqueryのcss関数を使用しないのはなぜですか?

使用してみてください:

el.getStyle('backgroundPositionX')

and

<*>

はい、古いスレッドですが、@ mootools lighthouseにぶつかった別のソリューションを投稿すると思いました...

if (Browser.Engine.trident){
    var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
    var xy = el.getStyle("backgroundPosition");
}

これまでのところ私にとってはうまく機能しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top