[解決済み] scriptタグの中にHTMLコメントを入れるのはベストプラクティスか?[クローズド]
質問
私が扱っているインライン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 のコメント内では -- は許可されないので、スクリプト内のデクリメント操作は無効です。
関連
-
[解決済み] 文字列からHTMLタグを削除する
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
-
[解決済み] HTML5で(非空白の)自己閉鎖タグは有効ですか?
-
[解決済み] XMLのアンパサンドをエスケープして、HTMLで実体として表示するにはどうすればよいですか?
-
[解決済み] htmlの<base>タグの推奨事項を教えてください。
-
[解決済み】一部のHTMLタグに任意のデータを格納する方法
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] Node.jsのES6クラスをrequireで作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] scriptタグの中にCDATAセクションが必要なのはどんな場合ですか?
-
[解決済み] JSのDateからDay名
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)