IE javascript utf8 エラー
今日発生した、javascript IEのトラブルについて書いておきます。
とんでもないことに、IEでは、javascriptのコメントの書き方を間違うと、エラーになる場合があります。
はあ??
わかりやすくするために、うまくいく場合とうまくいかない場合の2つのソースを書いてみました。
内容としては、ページが表示されたときに、Good job!と表示されるだけのコードです。
javascriptの部分だけ抜粋すると、以下のようなもの
<script type="text/javascript">
var test = function () {
// 描画領域の取得と設定
alert("here");
}
setTimeout("test()",200);
</script>
IE6またはIE7で上記のリンクをクリックしてみれば、片方は予想通り動作するのに、片方は動作しないことが確かめられるでしょう。
ソースを見比べてみると殆ど違いはない。
この違いは何だろうか?
これら2つのソースの違いは1行しかありません。
つまりコメント行です。
// 描画領域の取得と設定
うまくいく場合は、コメントの最後に半角スペースが含まれていますが、
動作しない方のソースは、コメントの最後にスペースが含まれていません。
なぜ、このような症状がおきるか調査しました。
(本来のコードはもっと複雑で、奇妙な現象がおきたり起きなかったりしたので、不思議でしたが)
要するに、自分が悪かったのです。HTML の<head>タグにcontent-typeを記載していませんでした。
このため、IEはshift-jisでjavascriptを解釈しようとしているため、コメントの内容によっては、判定できないのです。
まったく、たったこれだけのために、半日以上費やしました。
この半日をどこかで取り戻さないといけないので、落ち込みますが、
多分、似たようなことで嵌っている人もいるのではないかと思い、日記に書いておきます。
この記事を見て、救われた方がいらっしゃれば、慰めになりますです。はい。
カテゴリ
技術トラックバック(0)
このブログ記事を参照しているブログ一覧: IE javascript utf8 エラー
このブログ記事に対するトラックバックURL: http://www.doevery.com/200709.MT4/mt/mt-tb.cgi/87

コメントする