2012-03-17 9 views
4

可能性の重複:
Why does this Javascript code inside a non-Javascript browser have extra commenting?Javascriptで<! - と// - >を使用するのはどうですか?

時々私は<!--で始まり、//-->で終わるいくつかのJavascriptを見ています。

私はそのような行の使用は何ですか?私が知る限り、<!--はコメント行を意味します。しかし、スクリプトはまだそのような行でも機能するので、そうではないようです。また、行が削除された場合にも機能します。

<script language='JavaScript' type='text/javascript'> 
<!-- 
    function changelang(id) { 
    document.location.href='index.php&lch=1&lang=' + id } 
//--> 
</script> 

答えて

7

それはscriptタグを理解していない古いブラウザのために使用されるように使用され、もちろん望ましくたテキストとしてその内容・ノードをレンダリングします:

は、ここに1つの短い例です。

あなたがcanvasaudionoscript要素の内容を考えるとき、これは(後者は、今日の特別な扱われますが、ブラウザはnoscript要素が何であったか知らなかった昔に戻って想像されている)より多くの意味を行うことができます。

この日および年齢では、必須ではありません。

ダグラス・クロフォードは、その使用を推奨しています。

スクリプトを使用して<!-- //-->ハックを使用しないでください。 ブラウザがNetscape 1とMosaicの第1世代 ブラウザでテキストとして表示されないようにすることを目的としていました。 年は多くの場合必要ではありません。 <!-- //-->はHTMLコメントを通知するはずです。コメント は無視し、コンパイルして実行しないでください。また、HTMLコメントには が含まれていないため、--が含まれないため、デクリメントするスクリプトにはHTMLエラーがあります。

Source

+0

Whoa、fast answer。だから私は 'language = 'Javascript''のように非難されていると思いますよね?ありがとう! – deathlock

+0

@deathlockええ、 'language'属性は使わないでください。 :) HTML5では、デフォルトで 'text/javascript'として' type'属性を削除することもできます。 – alex

+0

私はちょうど好奇心の外に、もし私がそれを下位互換性のあるものにしようとするなら(誰かが古いブラウザを使用している場合)、それらの2人は依然として必要なのか、まったく放棄できるのでしょうか? – deathlock

1

これは、スクリプトタグを理解していないブラウザ(無効にしている場合)に対してスクリプトのテキストコンテンツを非表示にするために使用される古い規約です。

関連する問題