• ベストアンサー

JavaScriptの中に書くhtmlコメントの意味は?

Wernerの回答

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.3

> 「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

mibusys
質問者

お礼

既出の質問だったのですね。 やはり常識的には不要としていいみたいですね。 参考になりました。ありがとうございました。

関連するQ&A

  • 未対応ブラウザ向けコメントについて

    初歩的な質問なのですが、調べて解決できなかったので どなたか教えてください。 通常<script> タグの中身を 1 <script language="javascript"> 2 <!-- 3 4 //--> 5 </script> このようにコメントアウトすると読んだのですが、 javascript対応のブラウザの場合、 2行目のはんぱなタグが残ってしまうような気がします。 1 <script language="javascript"> 2 //<!-- 3 4 //--> 5 </script> ↑これならば完全に2・4行目のタグがコメントアウトされ、 未対応ブラウザでも <script language="javascript">//</script> と、ソースが表示されなくなると思うのですが…。 おそらく何かが理解できていないと思うので、 正しい答えを教えて頂けないでしょうか。 宜しくお願いします。

  • なぜ外部jsファイルはコメントアウトが必要ないのか?

    htmlに直接Javascriptを書く場合は、非対応ブラウザへの考慮としてコメントアウトを記述せよと教わりました。以下のように書けば良いんですよね? <script type="text/javascript"> <!-- (スクリプト) //--> </script> しかし思ったのですが、外部jsファイルを呼び出す場合はこうなります。 <script type="text/javascript" src="script.js"></script> コメントアウトは記述されていません。また、過去勉強中にさまざまなサイトからサンプルをダウンロードして見てましたが、jsファイルの方にコメントアウトが記述されていることもありませんでした。つまりこのやり方ですとコメントアウトがまったく出てこないわけですが、これはなぜでしょうか? もう1つお聞きしたいのですが、もしコメントアウトを記述しないでそのhtmlファイルをJavascript非対応ブラウザで見た場合、どのような挙動をするのでしょうか?

  • Javascriptでデクリメント(--)を使うとInvalidに!

    xhtmlでマークアップし、常にValidatorでValidな文書になるよう心がけています。xhtmlでJavascriptを使う際、自身に埋め込むか外部jsファイルに記述してそれを呼び出す方法の2種類があります。この前者の方法を使った場合、スクリプトがデクリメント(a--や--bなど)を含んでいるとInvalidになってしまいます。 原因は分かっています。 Javascript記述時に、Javascript非対応ブラウザへの対処としてコメントアウトの記述をします。以下のように。 <script type="text/javascript"> <!-- (スクリプト) //--> </script> このコメントアウト中にハイフンが2つ以上連続して出現してはいけないんですよね。xhtmlのソース中のデクリメントがこのハイフン2つとしてひっかかってしまったのでしょう。 ここで私がお聞きしたいのは、これにどのように対処するべきかということです。そもそもxhtmlにJavascriptをベタ書きするのが間違いで、外部ファイルを使うべきなのでしょうか。それともコメントアウトを記述しなければよいのでしょうか?

    • ベストアンサー
    • HTML
  • 【JavaScript】いまどき未対応のブラウザなんてありますか?

    JavaScript初心者です。 現在専門書を見て勉強しているのですが、頻繁に「古いブラウザ対策」の記述が出てきます。たとえば、 <script type="text/javascript"><!-- document.write("ようこそ!"); //--> </script> の <!-- や //--> とか、 if (document.images) { などです。 シェア0.5%未満のブラウザは無視してかまわないと考えているのですがこれについてご意見お願いいたします。できれば仕事でWeb制作されている方のご意見が助かります。よろしくお願いいたします。

  • JavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?

    JavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味? YOUTUBE日本語版 http://jp.youtube.com/ のHTMLソースを見ていたら、 <script type="text/javascript">     window.google={kHL:"ja"}; </script> という記述を目にしたのですがこれはどういう意味あいというか目的のものなのでしょうか? 教えていただければ幸いです。

  • JavaScript のdocument.writ

    JavaScript で以下のような感じでdocument.write内にスクリプトを記述させたいのですが、うまくいきません。 document.write(“<script type="text/javascript" language="javascript">var aa_conf = {site:458,frame:13,width:125,height:125,color:["ffffff","FFFFFF","2200CC","F25D5D","671F28"],host:'aa.aa.jp',ver:1.1};</script><script type="text/javascript" language="javascript" src=http://aaa.com/a.js charset="utf-8"></script>”); \を”の前にいれたり、<script>を二行に分けたり、いろいろしてみたのですが、解決しません。 よろしくお願いします。

  • JavaScriptプラグインが読み込めません

    「easySlider1.7」というJavaScriptプラグインを使い、サイト内の画像をスライドさせようとしています。 MacのデスクトップにおいたフォルダのHTMLと同じ階層にeasyslider1.7というフォルダをおき、<head>内に <script type="text/javascript" src="easyslider1.7/js/easySlider1.7.js" ></script> <script type="text/javascript" src="easyslider1.7/js/jquery.js"></script> と記述し、 <script type="text/javascript"> $(document).ready(function(){ $("#slider").easySlider({ auto:true }); }); </script> で動作させようとしているのですが、 ブラウザで試すと動かず、コンソールには ReferenceError: Can't find variable: jQuery TypeError: Result of expression '$("#slider").easySlider' [undefined] is not a function. と出てきます。 上段の”jQuery”はeasySlider1.7.js内に記述されているものです。 ちなみにgoogleAPIのjQueryをロードしても同じエラーが出ました。 何が原因なのでしょうか。ご回答宜しくお願いします。

  • Javascriptでブラウザ振り分け。

    Javascriptでブラウザ振り分け。 Javascriptでブラウザの振り分けを行いたいと思います。 振り分けをする対象は 『IE7以前 <--> IE8以降』 サイトを徘徊して色々見て周ったのですが 一番簡単な方法として if(navigator.appVersion.indexOf("MSIE 5",0) != -1) alert("IE5ですね") の記述を見つけました。 が、上記のスクリプトはIE5のみを判定するスクリプトで IE7以下、IE8 の振り分けではなく困っています。 引数として文字列が返ってくるのであれば演算子を 『>』等では難しそうですし・・・。 良い方法はありませんでしょうか? よろしくお願い致します。

  • JavaScriptをgoogle chromeで

    JavaScriptの学習を始めたのですが、最初で躓いてしまいました。 私はgoogle chromeを規定のブラウザとして使用しています。 test.htmlでの記述: <html> <head> <title>JavaScript test</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript" src="test.js"> </script> </body> </html> test.jsでの記述: var num=[11,22,33,44,55]; var name=['test','test1','test2','test3','test4']; for(var i=0;i<5;i++){ document.write(name[i]+"の点数は"+num[i]+"です<br />"); } 期待していた表示は、 testの点数は11です test1の点数は22です test2の点数は33です test3の点数は44です test4の点数は55です という感じなのですが・・・google chromeでは tの点数は11です eの点数は22です sの点数は33です tの点数は44です ,の点数は55です と表示されてしまいます。 IEでは問題ありませんでした。 全てのブラウザで問題なく表示させるためには、 どのようにすればいいのでしょうか? ご教示願います。

  • 外部JavaScriptの読み込み

    超初心者です。よろしくお願いします。 Macromedia Dream waverMX2004でホームページを作成しているのですが、見た目を良くしたくてスワップイメージやポップアップメニューなどを加えたところ、xxx.jsと自動的にファイルが作成され、 <script language="JavaScript" src="xxx.js"></script> と外部から読み込めるようになっていました。 しかし、<script language="JavaScript" type="text/JavaScript">○○○○○</script> という記述が残されているのですが、この○○○○○の部分を外部ファイルにすることは出来るのですか?(ソフトでの操作ではなく、Notepadなどで)