プログラマ気分

メモや自分が思ったことを書く

<< Chrome エクステンション「JS&CSS Highlighter(v1.0.0)」の紹介とバグの解決 | main | DD_belatedPNG / jQuery.belatedPNG についてメモ的な >>

スポンサーサイト

2014.08.06 Wednesday

一定期間更新がないため広告を表示しています

-|-|-|by スポンサードリンク

jQuery 1.6(+) のバグ?jQuery.support.style に注意

2011.05.14 Saturday

以下、jQuery 1.6.1(11/05/14現在)時点でのお話です。

IE8 + jQuery 1.6(+) において、jQuery.support.style の評価が変わっているので注意してください。

jQuery.support.style とは、getAttribute("style") で要素に記述された style 属性値を取得できるか評価する為に使用します。

IE8 は getAttribute("style") で style 属性値が取得できるので true にならなければなりませんが、何故か 1.6 からは false と評価される様になっています。

1.5.2 と 1.6 とで評価している部分を見比べてみます。

jQuery 1.5.2 の場合

jQuery 1.6 の場合

これらは div 要素内に HTML を直接書き込み、そこから getAttribute("style") で取得出来ているか判断している訳ですが、見て分かるとおり、若干処理が変更されています。

1.5.2 は color プロパティの値(red)を評価するのに対し、1.6 以上は top プロパティ名を評価しています。

ここで問題なのは、IE8 以下だと CSS のプロパティ名を大文字に変換してしまう点です。

IE8 で a.getAttribute("style") を使って取得できる値は "FLOAT: left; TOP: 1px; opacity: .55" であり、小文字のみを見ている 1.6 の評価方法では false となってしまいます。

もしもこの問題を修正するなら、i フラグを付けて大文字小文字どちらでも評価する必要があります。

今回の問題で、もしも IE のバージョン分岐などを jQuery.support.style を使って実装している方は要注意してください。

下記のコードは 1.6 では正常に動作しません。

JavaScript14:40comments(0)trackbacks(0)by ニノミヤ カズノリ

スポンサーサイト

2014.08.06 Wednesday

-|14:40-|-|by スポンサードリンク

コメント
コメントする









トラックバック
calendar
     12
3456789
10111213141516
17181920212223
24252627282930
<< September 2017 >>
sponsored links
selected entries
categories
archives
recent comment
recent trackback
links
profile
search this site.

others
mobile
qrcode