1. ホーム
  2. javascript

[解決済み] scriptタグの中にHTMLコメントを入れるのはベストプラクティスか?[クローズド]

2022-12-25 12:06:03

質問

私が扱っているインラインJavaScriptでは、次のようなやり方がかなり一般的です。

<script type="text/javascript">
   <!--
       // Code goes here
   //-->
</script>

JavaScript と互換性のないブラウザがソースを表示しないようにすることがポイントだということはわかりましたが、これは現在でもベストプラクティスなのでしょうか?現在使用されているブラウザの大部分は JavaScript を解釈できます。最新のモバイル デバイスでさえ、通常は問題がありません。

なぜダメなのか」という質問について。誰かが、いくつかのページの奥深くに埋まっているスクリプト タグの末尾の「-->」の前の「//」を削除したため、謎の JavaScript エラーが発生したという問題を、最近数時間かけてデバッグする必要がありました。

あなたはどうしますか? これはまだ「ベスト プラクティス」と考えられているのでしょうか?

どのように解決するのですか?

重要なのは、今日では、特定のブラウザが JavaScript をサポートしているかどうかは関係ないということです (明らかに、大多数はサポートしています)-関係ないのは、ほとんどの場合 すべて はスクリプト ブロックを理解し、たとえ解釈できなくても JavaScript を無視することを知っているからです。

Matt Kruse は少し より詳細な説明 で、彼の JavaScript ツールボックス のサイトで、なぜ具体的に ではなく を使用する理由は、スクリプトブロック内で HTML コメントを使用するためです。

そのページから引用しています。


スクリプトブロックにHTMLコメントを使用しない

javascript が登場した当初 (1995 年)、Netscape 1.0 などの一部のブラウザは script タグをサポートしておらず、またその知識もありませんでした。そのため、javascript が最初にリリースされたとき、古いブラウザからコードを隠して、ページ内のテキストとして表示されないようにするテクニックが必要でした。その「ハック」とは、コードを隠すために、script ブロック内で HTML コメントを使用することでした。

スクリプトで HTML コメントを使用するのは悪いことです。

// DON'T do this! Code is just representative on how things were done
<script language="javascript">
<!--
   // code here
//-->
</script>

現在、一般的に使われているブラウザで <script> タグを知らないものはありませんから、javascriptのソースを隠す必要はもはやありません。むしろ、以下の理由から有害とも言えます。

  • XHTML ドキュメント内では、ソースは実際にはすべてのブラウザから隠され、役に立たないようになります。
  • HTML のコメント内では -- は許可されないので、スクリプト内のデクリメント操作は無効です。