- ベストアンサー
書き方が悪いのか?それとも仕様なのか?
それとも、単純なミスに気がつかないのか、どうしても、期待した結果を表示させることができません。 document.write();内で「<!-- comment -->」や「<script ... </script>」はNGなのでしょうか? 現状としては、後述の内容をHTMLファイルとしてローカルに保存した後、ブラウザで、そのHTMLファイルを開いて結果を確認しています。 ブラウザは Firefox 2.0.0.19 で OS には Debian GNU/Linux etch を使用しています。 可能であるならば、表示できるようにしたいのですが、もし、無理であるなら、その原因(理由?)も知りたいです。 申し訳ありませんが、詳しいかた、どうぞ、よろしくおねがいいたします。 【期待している結果】 - Test Start - ------------------------------------------- ←<HR>の線 Script:document.write('<script language='Javascript'>document.write('Hello World'):</script>:End. 【実際の結果】 - Test Start - ------------------------------------------- ←<HR>の線 :End."); --> ---- ここからHTMLファイル内の内容 ---- <HTML> <HEAD> <TITLE>ScriptTest</TITLE> <script language="Javascript"> <!-- document.write("- Test Start -"); --> </script> </HEAD> <HR> <BODY> <script language="Javascript"> <!-- document.write("<!-- comment -->"); document.write("Script:document.write('<script language='Javascript'>document.write('Hello World'):</script>:End."); --> </script> </body> </HTML> ---- ここまでHTMLファイル内の内容 ----
- みんなの回答 (4)
- 専門家の回答
お礼
繰り返し、御回答頂き、ありがとうございます。 >タグを文字列として HTML に出力するのであれば、普通に考えて <、& → <、&(場所によっては >、"、' → >、"、')に置換する必要があるのですから、document.write() するときもこれを考慮しなければなりません。 確かにその通りでした。御指摘ありがとうございます。「<」「>」「&」「*」だけでなく「”」や「’」等も置き換え対象として注意します。 Chaireさんをはじめ、みなさんの御指摘でようやく、ここまで、たどり着けました。 この場を借りて感謝します。本当にありがとうございました。
補足
参考までに、できあがったコードは下記の通りです。 -- ここから HTML ファイル -- <HTML> <HEAD> <TITLE>ScriptTest</TITLE> <!-- Chaireさん/Wernerさんの指摘 : language を type に変更 : script language="Javascript" // --> <script type="text/javascript"> <!-- document.write("- start -"); <!-- Wernerさんの指摘 : 「Netscapeでのエラー対策の為」との解釈で良いのでしょうか? // --> // --> </script> </HEAD> <hr> <BODY> <!-- 4017Bさん/Wernerさんの提案 : 外部ファイル化 // --> <script src="./sdjs.js" type="text/javascript"> </script> </body> </HTML> -- ここまで HTML ファイル -- -- ここから JS ファイル(HTMLファイルと同じ場所に配置。ファイル名:sdjs.js ) -- // ScriptDemoJavaScript.js // Chaireさんの指摘 : コメント内では「--」を「-\-」にする。特定文字の置き換え // 疑問 : .js ファイル内でも「--」を「-\-」とする必要はあるのだろうか?どちらでも同じように動くようだが…。 document.write("<!-\- comment -\->"); document.write("<br>"); //改行の指示。 // document.writeln()を使わないのは、使いかたがわからなかった為。(改行されず、空白ができるだけだった。) // new String() を試したときの残骸 // Chaireさんの指摘 : 特定文字の置き換え // str = new String("Script:document.write('<script language='Javascript'>document.write('Hello World'):</script>:End."); // document.write(str); // Chaireさんの指摘 : 特定文字の置き換え document.write("Script:document.write('<script language='Javascript'>document.write('Hello World'):</script>:End."); -- ここまで JS ファイル --