• ベストアンサー

書き方が悪いのか?それとも仕様なのか?

Wernerの回答

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

特に出来ない理由がなければ、JavaScriptは外部ファイルにすることをすすめます。 外部ファイルはHTMLとして解釈されることはないので、 ソースコード全体をHTMLのコメントで囲ったりしなくて良いし <script>や</script>、--の出現に関して気にする必要もなくなりますから。 それから、提示のコードの  -->  </script> は、  //-->  </script> としておきましょう。 あと提示のコードはHTML4.01のつもりで書いたわけでは無いのかもしれませんが、 もしHTML4.01に従って記述するつもりがあるなら language 属性ではなく、type 属性を使用しましょう。

jxnvozt
質問者

お礼

御回答ありがとうございます。 コードの御指摘、感謝します。早速、反映させてみます。 「//」を入れる意味(理由)が、気になりますが、後ほど調べてみます。 さて、回答者:4017Bさん(No.1)の回答の中でも、「外部ファイルで」という表現がありましたので、 今回、外部ファイル(JSファイル)に分割して、試してみました。 Firefoxでしかテストしていないのですが、結果として、外部ファイルもHTML的に解釈されるようで、変化はありませんでした。 また、回答のお礼(No.1/No.2)で書いた「new String()」でも同様の結果となってしまいました。 そんなこともあって、googleにて「エスケープ文字」で検索していた所、Pythonスクリプトでの説明ではありましたが、 要約すると『HTML内では「<」「>」「&」そして「*」の4文字は必ず、エスケープしなければならない。』と書かれていました。 さっそく、マネて、文字列部分を書き換えてみました。 その結果、見事、期待している結果になり…。 一応なりました。 あとは、<!-- comment -->の後の改行を、入れるだけです。 やることは、単純なのに、無駄に長くかかってしまいましたが、ようやく、終わりそうです。 ★ここで、質問の内容に一部誤りが発見されましたので、訂正させていただきます。 [訂正内容] <HR>の線の下に入るべき内容(<!-- comment -->)が入っていない。 [誤] 【期待している結果】 - Test Start - ------------------------------------------- ←<HR>の線 Script:document.write('<script language='Javascript'>document.write('Hello World'):</script>:End. [正] 【期待している結果】 - Test Start - ------------------------------------------- ←<HR>の線 <!-- comment --> Script:document.write('<script language='Javascript'>document.write('Hello World'):</script>:End. 以上が、訂正の内容です。

関連するQ&A

  • 外部スクリプトでどうしてもエラーが出ちゃう!

    こんにちわ。 早速なんですが、外部スクリプトに文章を入れてhtmlに記述したスクリプトでその文章を読み出そうとしてるんですが、 つまり外部スクリプト(ファイル名:test.js)の中は abc="あ~テストテストってこんな感じに書いて"; des="<FONT size="-1">にこめのテスト</FONT>"; って書いてhtmlの中に書くスクリプトは <html> <head><SCRIPT src="test.js"type="text/javascript"language="javascript"></SCRIPT> </head> <body> <SCRIPT type="text/javascript"> <!-- document.write(abc); // --> </SCRIPT> <SCRIPT type="text/javascript"> <!-- document.write(des); // --> </SCRIPT> </body> </html> って感じなんですが、これを開くと エラー';'がありません。 エラー'abc'は宣言されていません エラー'des'は宣言されていません ってでくるんです。もちろん、test.jsへのパスはあってます。 何か書き方が違っていましたら教えてください。

  • プログラミングの実行について

    テキストエディタで、下記の HTML ソースを入力して、保存して、ブラウザで表示してみましょう。 <html> <head> <title>サンプル</title> </head> <body> <script type="text/javascript"> <!-- document.write("Hello World!!"); // --> </script> </body> </html> とウェブに書いてあったのですが、このプログラミングを実行するためにメモ帳にコピーしてエンター押してみたのですが、Hello World!!と表示されません。 「テキストエディタで、下記の HTML ソースを入力し保存してブラウザで表示」とはどういう意味なのでしょうか? ほんとに初心者ですいません。

  • <HTML>文章をメモ帳に書いてブラウザに変えても変わって表示されません。

    <html> <head>               <title>プログラム例</title>  </head>                   <body> <script type="text/javascript"> docment.write("<hr>"); docment.write("<h1>hello<h1>"); docment.write("<hr>"); </script> </script> </body> </html> これをメモ帳に書いてブラウザに切り替えるとhelloってブラウザ上に出るのですが、全然まったく変わりません。 そのまんまの通りに出てしまいます。 なんでこうなってしまうのかわかりません。どうが教えてください

  • 外部ファイルを利用したい

    現在、Webの勉強を始めたのですが、自分でいろいろ作成していてうまくいかないので、教えて下さい。 htmlファイルが幾つかあるのですが、全てのページに同じテーブルタグを使用するので、JavaScriptの外部ファイルで書き出してそれぞれを各htmlファイルで呼び出そうと思っていますが、うまくいきません。 ★jsファイル/xx.js★ <SCRIPT language="JavaScript"><!-- document write("<table border='1'"); document write("<tr><td><img src='xx.gif'></td></tr>"); document write("</table>"); --> ★htmlファイルでの呼び出し★ <html> <head><title>外部ファイル呼び出し</title></head> <body><script language="JavaScript" src="xx.js"></script> </body></html> かなり素人なので変な書き方をしていると思いますが、ご指導お願いします。

  • レイヤーに書き込むには

    JavaScript 初心者ですが、 document.write(string); が含まれる関数を呼び出してレイヤーに文字列を書き出したいのですが、ページ全体に書き出されてしまいます。レイヤーの文字のみ変更するにはどうすればよいのでしょうか。 <html> <head> </head> <body> <div id="layer1"> <script type="text/javascript"> <!-- function function1() { document.write("Hello, World!"); } //--> </script> </div> <input type="button" onclick="function1()" /> </body> </html> よろしくお願いします。

  • JavaScript実行結果を保存

    PerlでJavaScriptを実行し、その結果を出力することはできるのでしょうか? 例えば、 <HTML><BODY> <script> <!-- document.write("テストです"); // --> </script> </BODY></HTML> 上記のようでしたら、 <HTML><BODY> テストです </BODY></HTML> と、そのまま表示したいのですが("<"等は"&lt;"等に置き換えます。)、できるのでしょうか? 上の例だと、document.writeだけを消してしまえばいいのですが、if文やfor文などがあると消すだけでは無理ですので。。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • HTML→PHPへ値を渡して再びHTMLに結果出力

    HTMLからPHPへ値を渡して、再びHTMLに結果を表示したいと思っています。 以下のような簡単なコードを書いてみましたが、HTMLのページに"OK"という文字が表示されません。 PHPのパーミッションは755でやっており、PHPが動作するサーバーでテストしています。 どう修正すれば良いのか、アドバイスをお願い頂けますでしょうか? どうぞよろしくお願い致します。 【HTML】 <html> <head> </head> <body> </body> <script type="text/javascript" src="http://xxx.com/test/jsphptest.php?param=1"></script> </html> 【PHP】 <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '1') { echo "document.write(\"OK\")"; } else { echo "document.write(\"NG\")"; } ?>

    • ベストアンサー
    • PHP
  • frameとJavaScriptの共存

    <html><head><title> INDEX.HTML </title></head> <frameset rows="70%,*"><frame src="./main.html" name="MAIN"><frame src="./menu.html" name="MENU"></frameset></html> の中に下記のJavaScriptを埋め込みたいのですが どうすればいいのでしょうか? <SCRIPT Language="JavaScript"> <!-- document.write("<img src='http:/xxx/acclog.cgi?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </SCRIPT> Java Scriptを埋め込んだらフレームが正常に働かなくなりました。 どのようにすればいいのでしょうか?アクセス解析なのでindex.html に設置したいのですがいいアドバイスよろしくお願いします。

    • ベストアンサー
    • HTML
  • PHP側でSESSON変数に値をセットして、クライアント側のjavas

    PHP側でSESSON変数に値をセットして、クライアント側のjavascriptで、SESSON変数の値を取得する方法は? <?php session_start(); $a[0][0] = 5; $a[0][1] = 9; $a[0][2] = 8; $_SESSION["id"] =$a; ?> <html> <head> <title>wwww</title> </head> <body> <script language="JavaScript" type="text/JavaScript"> function test(){ id =getsession(); //←このようなことが、したいです。     document.write(id[0][0]); } </script> <button onclick="test()">sssssss</button> </body></html>

  • 文字色の変化

    <HTML> <HEAD> <TITLE>bgcolor</TITLE> <SCRIPT LANGUAGE="JavaScript"> function dispbk(t){ for (i=0; i<=255; i++){ for (j=0;j<t;j++){ c=i+i*256+i*256*256; c="000000"+c.toString(16); c=c.substring(c.length-6,c.length); document.bgColor=c; } } } </SCRIPT> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> dispbk(3); </SCRIPT> <HR> <H1>教えて!GooH1> <HR> </BODY> </HTML> これと同じような書き方で、 1.背景を黒から白からに徐々に変えながら文字を白から黒に徐々に変えるプログラム 2.文字の色だけが一文字ずつ白から黒に変わるプログラム の書き方を教えてください。