どもです。
今や旧IEへの対応なんざやって8まで、7以下は無視。
なんて方が多いと思いますが、案件によってはそうはいかないのが悲しいところ。
IE7(あるいはそれ以下)のみでjQueryが動いてくれない事件への対策を記録してみます。
(2016.02.18事例追加につきレイアウト・文面一部変更)
末尾カンマへの不寛容(ケツカンマ問題とかあだ名ついてて草)
2014.2.14
「GalleryViewを使っているがIE7だけ動かない」
外国産のjQueryですから、旧ブラウザへの対応を打ち切っていてもおかしくありませんが、調べてもそれらしい話は一切出てきません。
プログラムの競合なども考えましたが、それも違うようです。
こういうときは、プログラムがバグっていないかブラウザのコンソールでチェックです。
google chromeではエラーなし、IE10でも問題ありません。
では、肝心のIE7では…
出ました、エラーメッセージ。
IE7でしか表示されないあたり、今回の元凶はこれっぽい。
ここは該当スクリプトにおいてユーザーHTML部に記載する部分のようです。
カスタマイズ部なので、確かに間違いが起こるとしたらここかも…
↓動く
$(document).ready(function(){
$('#photos').galleryView({
panel_width: xxx,
panel_height: xxx,
frame_width: xxx,
frame_height: xx
});
});
</script>
↓動かない
$(document).ready(function(){
$('#photos').galleryView({
panel_width: xxx,
panel_height: xxx,
frame_width: xxx,
frame_height: xx,
});
});
</script>
(゜д゜)
そういえば、MYSQLの勉強してたときにこういうミスでエラー弾かれたことがあったような…
IE7だけでjQueyが動かないときは、カンマを余分に記載していないかチェックすると良いかもしれないですね。
console.logが入ってるとエラー!
2016.2.18
ページを開いた瞬間に致命的なエラー!
な場合は、プログラム作成中のconsole.logが残ってるせいかもしれません。
IE7以下ではコンソールが無い!
っぽいので、致命的なエラーとして認識されてしまうらしいです。
ひぃ(´ε` )
jQuery2系はIE9から
2016.2.18
IE8も含む話なので主題と少しズレるのですが、
jQuery2系は旧IEで動かそうとするとエラーになります。
故にjquery-1.11.1が未だ手放せぬ…
ご注意!
CSSにも致命的なバグがあるのか…
2016.2.18
overflow:hiddenの要素の子孫に、position:relativeがひとつでもあると、
hiddenされてくれないという致命的なバグがあったのでついでにメモ。
つ…つらたん…(´ε` )