document.write();の中に<script language = "javascript">を入れるには?

[上に] [前に] [次に]
rain [E-Mail] 1999/06/15(火) 15:29:56
<script language = "javascript">
  function controll(){
    var popup = window.open('','cotroll','toolbar=no...');
    popup.document.open();
    popup.document.write("<html>");
    popup.document.write("<head><title>画面2</title>");
    popup.document.write("  <script language = 'javascript'>");
    popup.document.write("  〜 scriptの内容 〜  ");
    popup.document.write("  </script>");
    popup.document.write("</head>");
    popup.document.write("<body></body>");
    popup.document.write("</html>");
    popup.document.close();"
  }
  location.href = "../../画面1変更.htm";
  controll();
</script>
のような新規画面で[script]を使うプログラムを作りたいのですが、
[script]の中に[script]を入れることは出来ないのでしょうか?

Tmb 1999/06/15(火) 15:50:35
これは「こんなスクリプトを作ってみたけど思うように動作しなかった」と捉えていいのですか?
もしそうなら,どんな動作になったか(エラーメッセージなど)を書いてくれないと,判断に
苦しみます。

ただ,スクリプトを見て気になる点がいくつか。

1. location.hrefの次の関数は間違いなく呼び出されてますか?
 →関数にalertなどを入れて確認
2.SCRIPT内に「</」を直接書くことは薦められません。
 詳しくは,このとほほさんのサイトのJavaScriptに関するところにも
 解説があったと思います。

rain 1999/06/15(火) 17:00:47
すいませんでした。
思うように動かなかったのです
実際は、CGIでHTMLのコーディングを吐き出しているという形式のプログラムです。
新規で「open」したウィンドウのスクリプト内から、別のページに飛ぶ(リモコン画面)のようなものを作りたいのです。
「location」については、呼び出せているようです。
現状のままで実行するとエラーが、「unterminated string literal」とあるので、終了文字がないのかも
と思い、忠告の「</」を修正してみると、
エラーは出なくなるのですが、「document.write()」中の「script」が記入されていないために
リンクしようとした場合に、エラーが起こってしまう。
「script」以外のところは、正常に「document.write()」されています。
なぜなのでしょうか?
ちなみにテストは、NN4.04です。

Tmb 1999/06/15(火) 17:43:57
試しに簡単なHTML書いてテストしてみましたが,問題なく動作しましたが。
>unterminated string literal
もしかしてdocument.close();のあとの「”」のせいってことはないですか?
#単純な打ち損ねだと思って触れてなかったのですが。

一応テストしたのも載せときますね。

<html><head><title>タイトル</title>
</head>
<body>
<script language="javascript">
function func(){
var popup=window.open('');
popup.document.write('<HTML><HEAD><TITLE>TITLE<\/TITLE>');
popup.document.write('<SCRIPT language="javascript">');
popup.document.write('function func2(){alert("hoge");}');
popup.document.write('<\/script><\/HEAD><BODY>');
popup.document.write('<a href="#" onClick="func2();return false;">aaa<\/a>');
popup.document.write('<\/BODY><\/HTML>');
popup.document.close();
}
</script>
<a href="#" onClick="func();return false;">aaa</a>
</body></html>

Tmb 1999/06/15(火) 18:01:35
言い忘れてましたが,上のサンプルはMac+NN3で確認しました。

それと
>unterminated string literal
ですが,これから判断すると「閉じられてない文字列」があったわけですよね?

もしかして
>〜SCRIPTの内容〜
の中での「"」や「'」の扱いに原因があるのでは?
いちばん外側のが「"」ですから内部では基本的に「'」を使い,必要に応じて「\"」を
使わなければならないのですが,そこには問題ないですか?

rain 1999/06/15(火) 18:43:10
[[解決]]
どうやら、おっしゃる通り「”」や「’」のせいでした。
きれいなプログラムにしなければ、とつくづく思いました。
ありがとうございました。

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