冬言響 / 日記

アメコミとか映画とか音楽とか猫とか単車とか自転車とか革とか銀とかジーンズとかブーツとか今日喰ったものとか。

RSS2.0

html5shiv が初回で効かなかった件たぶん解決(かも)

9 より前の IE を HTML5 の新要素に対応させる魔法の呪文書 html5shiv が何故か意図通りに動かない、具体的にはページを開いた初回はどうも反映されていない様子で、リロードするとちゃんと CSS が適用され、でも別のページに移るとまた元通り、という現象を 1 年以上放置してたのだけど、どうにかなったかもよ。

ビフォア。

<!DOCTYPE html>
<html lang="ja">
<head>
<!--[if lt IE 9]>
<script src="/script/html5.js" type="text/javascript"></script>
<![endif]-->
<meta charset="UTF-8" />
<meta name="description" content="(略)" />

アフタァー。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="description" content="(略)" />
<!--[if lt IE 9]>
<script src="/script/html5.js" type="text/javascript"></script>
<![endif]-->

<head> のなるべく早い位置で読み込めとのことだったので先頭に書いていた(そしてうまく動かなかった)のだけど、なにげなく検索した html5shiv の使用例のソースコードで <meta> の後で読み込んでいるものを見掛けた(そのページの解説文中にその件に関する言及は無し)のでそうしてみたらうまく動くようになったぽい。ぽい、というか手元にネイティブの IE7 や 8 環境が無くて IETester での確認結果なのでちゃんと確認するまでなんとも言えんのだけど。まあたぶん大丈夫だろ。感触的に(謎。

感触だけでモノ言わせてもらうなら <meta charaset="UTF-8" /> がまあ関係している可能性が全く無くも無いなあと思わなくはないのだけど、html5shiv の使い方でも Javascript 全般でもざっと検索した限りでは先に書いとけなんて話は見当たらなかったのだけど、そんなルールなんてあったっけ。

よくわかんない。