ニガくて難しいアクセス解析を、たっぷりのミルクでふわふわの贅沢ラテ的な仕上がりに

javascriptをHTMLコメントで不用意に囲うとおかしな挙動になる

HTMLコメントは通常「<;!--」ではじまり「-->」で終わるものです。IE3とか4の時代は、javascriptもこのコメントで囲わないと画面上に出てしまうというバグがあったようなんですが、今はそんなことはありません。
とはいえ、推奨されてるのはjavascriptをCDATAとして扱う、以下のスタイルです(XHTML準拠らしいですが主流になりつつある)。

<script type="text/javascript">
//<![CDATA[
document.write('hello world');
//]]>
</script>
※この例ではJS全体がCDATAセクションに入ってる、と読み取ってください。

HTMLコメントの定義(via:RFC 1866)を確認

  1. コメント宣言<! で始める
  2. コメントは -- で始まり、次に -- が現れるまでの 全ての 文字がコメントとなる
  3. コメントは0個以上、複数あっても、複数行にわたっても構わない
  4. >で閉じる
  5. がなので、<!------------>の場合は、コメントスタートとしては正しいがコメントエンドとしては間違いです。
    なので、たとえばGAタグを

    <!-----GA----->
    
    (TAGがここに並ぶよ!)
    
    <!-----GA----->
    

    という風に書いてしまうと、ブラウザによっては正しく動作しなくなります。

    <!--===========================================-->
    この書き方はコメントとして正しい
    

    実際、IEだと動くけどFirefoxだとバージョンによって動かないことがありました。 Firefox/winが0.01%以下というシェアは最近のブラウザ事情的にありえないのでチェックしたらこんなことがわかった、という話です。

    GAの解析はやるけど、クライアントが埋めたタグに対して解析する場合は、正しくタグが入っているか(タグのカスタマイズ)だけじゃなくて、不要なコメントが入っていないかもチェックする必要がありそうですね。

Home > 06.マメ知識 > javascriptをHTMLコメントで不用意に囲うとおかしな挙動になる

このページの上へ