スクリプト内の<!--と//-->って何?

[上に] [前に] [次に]
1999/10/14(木) 16:31:08
Javaスクリプトの中に
<script language="JavaScript">
<!--
スクリプト内容
//-->
</script>
とよく書いてありますが、
<!--と//-->にはどういう意味があるのですか?
<!---と//--->のときもありますし、何も書いてない場合もあります。
どのように違うのか教えて下さい。
またはどこを見ればよいのか教えて下さい。

Selly 1999/10/14(木) 17:07:22
JavaScript非対応のブラウザでスクリプト自身が表示されないようにするためにコメントで囲みます。
<!---というのは構文的に正しくないかどうかは知りませんが、避けておいた方が無難かと思います。

mulberry 1999/10/14(木) 17:14:22
><!---というのは構文的に正しくないかどうかは知りませんが、避け
>ておいた方が無難かと思います。

 半角ハイフンの数は、二個一組で数えて、ちゃんと対応がとれていないと本当は駄目だそうです。ブラウザによっては、その後の文章も全てコメントと判断し、表示されないこともあるとか。
http://www.kanzaki.com/docs/html/valid-comment.html
 ↑以前みんこさん(たぶん)が紹介して下さったサイトですが、
  作者の方が詳しく説明して下さっています。

みんこ 1999/10/14(木) 17:17:35
../199910/99100061.htm

<!--なんとかかんとか-->
というのは要するにコメントタグです。
<!---〜〜〜--->とかは正しい書き方では多分ないので
構文チェックにかけると何か言われます。

みんこ 1999/10/14(木) 17:19:01
>↑以前みんこさん(たぶん)が紹介して下さったサイトですが、

初めて見た〜こんなサイトあるざんすか〜。
ブックマークブックマーク。

みんこ 1999/10/14(木) 17:21:48
>↑以前みんこさん(たぶん)が紹介して下さったサイトですが、

初めて見た〜こんなサイトあるざんすか〜。
ブックマークブックマーク。

mulberry 1999/10/14(木) 17:26:10
to みんこさん

>初めて見た〜
 あ、あれ、そうでした? 失礼いたしました〜。

とほほ 1999/10/14(木) 17:37:01
ちなみに、なんで、こんな仕様になっているかというと・・・

<!XXXX -- ZZZZ --
 XXXX -- ZZZZ --
 XXXX -- ZZZZ -->

XXXXが定義でZZZZがコメント。
HTMLではXXXXの定義はできないので、<! はコメントでのみ使用する。

ってな感じで使用するのが、SGMLの本来の目的なのだそうです。(たしか・・・)

さくらいゆずる 1999/10/14(木) 17:39:00
あと、ここ↓
http://openlab.ring.gr.jp/k16/htmllint/explain.html#w-hyphens-in-comment
以下の一連の解説とか。
JavaScriptを隠すためのコメントは、IE(3.01)では「//」がなくても
平気でしたが、NN(3.03だったかな?)だと見事にエラーが出ました。
さすが(何が・・・?)。

さくらいゆずる 1999/10/14(木) 17:42:30
もう一つ?追加・・・
http://openlab.ring.gr.jp/k16/htmllint/explain.html#comment-element
こちらはJavaScriptがらみの解説です。

mulberry 1999/10/14(木) 17:46:25
 訂正です。
 神崎正英さんのサイト(http://www.kanzaki.com/)を紹介して下
さったのはまゆさんでした。どうも失礼いたしました m(_)m
../199904/99040071.htm

のぐ 1999/10/14(木) 17:47:06
ハイフン3つの <!--- 〜 ---> は ColdFusion という Web アプリケーションサーバーのコメントタグ(今までの話からいうと宣言?)です。こうすると ColdFusion はサーバーからの出力時にコメント部分を消去してクライアントに送出します。つまり、コメントはユーザーに見られなくなるというわけです。自分のためだけのコメントやデバッグ中の文書などに便利。

1999/10/14(木) 19:11:19
たくさんの方が答えてくださり、ありがとうございます。
恥ずかしいことに、--が2つでセットだったとは知りませんでした。
それにしても、
<!--の前に//があると、HTMLに出てしまうのは分かりますが、
<!--だけで、Javaスクリプトはエラーにならないのは、
なぜなんでしょう?

アトム 1999/10/17(日) 17:58:35
JavaScript対応ブラウザでは、<SCRIPT LANGUAGE="JavaScript">・・・</SCRIPT>の間の
<!--はコメント行と同等に扱われます。(要するに//と同等です。)
<!--があると、その行の末尾までコメントアウトされます。

一方、-->はそのように扱われないため、JavaScriptとしてエラーになります。
エラーを避けるため//-->とコメントアウトする必要があります。

JavaScriptに対応していないブラウザでは
<SCRIPT LANGUAGE="JavaScript">・・・</SCRIPT>の間の
<!--は、HTMLのコメントアウトの方法に従うため、
-->までの記述が全てコメントアウトされます。

1999/10/19(火) 12:34:33
[[解決]]
なるほど、そういうことになっているのですか。
これでむねのひっかかりがすっきりしました。
丁寧に教えていただき、有難うございました。

[上に] [前に] [次に]