- ベストアンサー
JavaScriptの中に書くhtmlコメントの意味は?
JavaScriptではよくこういうコードを目にします。 1:<script> 2:<!-- 3:… 4://--> 5:</script> この2行目と4行目のコメントアウトの意味についてです。 きわめてよく目にする説明は 「JavaScriptに対応していないブラウザの為の記述です」 というものです。 うん。見飽きました。 しかしその実害について具体的に記述されているものを 一度も見たことがありません。 で、いつも「実害は何?」と問いたくなるのです。 実際にこれを記述しないことが原因で私は困ったことがありません。 また、困ったという話も聞いたことがありません。 (むしろエディタのキーワードハイライティングが無効になってしまうので 可読性を高めるためには書くべきではないようにも思えます) 10年20年前は問題が発生することもあったのかもしれませんが 事実上すでに都市伝説と化している気もします。 そこで問題です。 (1)書いてますか? (2)書かずに実際困ったことはありますか?(あるならいつごろか) (3)書かずに困ったという話を聞いたことがありますか?(あるならいつごろか) (4)具体的にどんなブラウザ・バージョンで問題が生じるのか (4)の情報があると非常にうれしいです。なくても 雑談的なご意見でも歓迎します。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 「JavaScriptに対応していないブラウザの為の記述です」 厳密にはちょっと違っていて、 script要素に対応していない(script要素を知らない)ブラウザのための記述です。 JavaScriptに未対応のブラウザでも、 script要素を知っていればscript要素の内容はちゃんと無視されます。 (HTML3.2以降に準拠しているブラウザならscript要素は知っているはずです。) script要素を知らないブラウザにとってはscript要素は未知の要素なので、 script要素の内容を非表示にするといった動作が出来ません。 > (1)書いてますか? いくつかの理由からJavaScriptは外部ファイルにしているので、 そもそも書く必要がないです。 (エディタのキーワード強調を動作させるためとか、 xhtmlにおいてJavaScriptコードをコメントで囲むと本当に無視される可能性があるとか、 script要素内に書く場合には出現させてはならない文字列などいろいろ気にしないといけないことがあるとか。) なお、掲示板などでサンプルコードを提示する時にscriptで囲む場合はありますが そのときはたいていコメントは書いてません。 > (2)書かずに実際困ったことはありますか?(あるならいつごろか) > (3)書かずに困ったという話を聞いたことがありますか?(あるならいつごろか) 実害は、上にも書いたとおり、 script要素の内容が表示されてしまう、です。 > (4)具体的にどんなブラウザ・バージョンで問題が生じるのか 最近のメジャーなブラウザでなら問題は起こらないです。 試したことはないですが、JavaScript対応したのがNN2.0、IE3.0の時なので、 それ以前のブラウザでなら問題が起こるかもしれません。 ○おまけ こういうコードだと コメントを消すとうまく動作しなくなります。 <script><!-- alert("</script>"); //--> </script> ○参考(以前答えた質問) 【JavaScript】いまどき未対応のブラウザなんてありますか? -OKWave http://okwave.jp/qa2462414.html
その他の回答 (3)
- askaaska
- ベストアンサー率35% (1455/4149)
見つけちゃったので回答してみるわ。 (1)書いてますか? 書いてるわね。 なんか既におまじないと化しているわ。 (2)書かずに実際困ったことはありますか?(あるならいつごろか) ないわね。 むしろそういうブラウザを見つけたら 障害として報告するかも。 (3)書かずに困ったという話を聞いたことがありますか?(あるならいつごろか) IE2では発生したらしいわ。 この目で実物を見たわけじゃないので確かなことはいえないけど。 8年位前のHTMLの本ならサンプルが載っているかも。 (4)具体的にどんなブラウザ・バージョンで問題が生じるのか <script>タグが未サポートのブラウザなら 確実に発生するんじゃないかしら。
お礼
>むしろそういうブラウザを見つけたら >障害として報告するかも。 これウケました。 まぁそういうもんですよね。でも書いてるんですね。 もはや対応していないブラウザが非常識で 非常識なブラウザの相手をしなければならない 必然性はないように思うようになりました。 参考になりました。ありがとうございました。
(1)書いてますか? 書いている。 (2)書かずに実際困ったことはありますか?(あるならいつごろか) ある。いつごろというか、けっこう頻繁に。 (3)書かずに困ったという話を聞いたことがありますか?(あるならいつごろか) ある。いつごろということでなく、年がら年中。 (4)具体的にどんなブラウザ・バージョンで問題が生じるのか 特に有名なブラウザでは、ない。 Web系の開発を請け負っている。で、まぁクライアントの要望に応じていろいろとプログラムを作っている。最近の傾向として、他のサイトの情報を取得し処理して再利用するような機能の要望が非常に多い。RSSなどのようにXMLならば厳格にタグが処理されているので簡単なのだが、HTMLを読み込んで処理するとなるとこれはかなり苦労することがある。 すべてのリテラルをタグでくくってきちんと書いてあるなら、正規表現で一発で必要なデータを抽出できる。ところが、タグの文法を無視して書いて(それで読めてしまうブラウザがあることに問題があるといえばあるんだが)そのままになってるようなサイトとかだと、これが面倒なんだ。「こいつら、なんで文法通りに書けないんだ!」と頭を抱えることもある。 Webにアップされたファイルというのは、「Webブラウザ」だけが利用するわけじゃない。さまざまなプログラムが利用している。Webで公開するということは、どこでどんなプログラムがそれを利用しているかわからないんだ、ということも考えて作ってくれると、こっちは大いに助かる。 ま、必ずしも一般的な意見じゃないが、そういう立場の人間もいる、ってことだな。
お礼
なるほど。 表示する際には問題ない。 でも、コンテンツを解析する作業をする人が、 scriptタグの解釈に対応していない解析するプログラムを使用している場合に 解析側が困ってしまうということですね。 特殊ですねー。というかscriptタグを解釈できるプログラムを 使ってほしいようにも思えますけど。それも難しいのですかね。 特殊な事情の人もいるのですね。参考になりました。 ありがとうございました。
- 15mm
- ベストアンサー率65% (65/100)
>実害は何? <script>に対応していないブラウザだと、 <b>や<i>などのマークアップのタグの一種だと認識し、 <script>という命令をどう処理していいかわからないため無視 結果、<script></script>間はそのままマークアップなしの「文字として」表示される <!---->はコメントなので表示はされない 逆に、<!---->なしだとブラウザがスクリプトを人間が読むための文章だと認識してスクリプトがむき出し表示になる (1)書いてますか? 書いてます。が、最近は外部ファイル化で「書いてはいけない」状況が多いです。 (2)書かずに実際困ったことはありますか?(あるならいつごろか) ないです。その時代に私は生きていたのかも知りません。 (3)書かずに困ったという話を聞いたことがありますか?(あるならいつごろか) ないです。1秒くらいの努力で防げる現象ですから、騒ぐほどではないのでは? (4)具体的にどんなブラウザ・バージョンで問題が生じるのか <script>に対応していないブラウザでしょうね。 とほほさんのHPより引用(<script>のページ) → サポート H3~H4s~ / e3~ / N2~ これより前のバージョンが怪しいのでしょうね。IE2?聞いたこと無いです(笑) 私が知ってるのは古くてIE5.5・・・私には無縁な話なんですね・・・
お礼
NN1かIE2以前の場合は問題が発生するかもしれないということですね。 やっぱりそんなもんですよね。 あとはNN1かIE2以前でも正しく動作するhtmlを書くべきかということですね。 そんなバージョンをサポートしているシステムやサイトを見たことないし サポートすべきならスタイルシートの使用を禁止しなければならなくなります。 やっぱり21世紀の現代としては都市伝説っぽいですね。 ありがとうございました。
お礼
既出の質問だったのですね。 やはり常識的には不要としていいみたいですね。 参考になりました。ありがとうございました。