2011-01-31 7 views
2

私は母のページを持っています。ここにはopenWin()というjvscrpt関数があり、新しいウィンドウが開きます。 ここに私のコードです:「!私をクリックして」javascriptレンダリングされたHTMLページまだロード中

<html> 
<head> 
<script type="text/javascript"> 
function openWin() 
{ 
win=window.open(); 
win.document.write("<html>"); 
win.document.write("<head>"); 
win.document.write("<style type=\"text/css\">"); 
win.document.write("@media print{.input {display:none}}"); 
win.document.write("</style>"); 
win.document.write("</head>"); 
win.document.write("<body>"); 
win.document.write("<table align=\"center\">"); 
win.document.write("<tr><td>result:</td><td>100,--€</td></tr>"); 
win.document.write("<tr><td colspan=\"2\" id=\"idcko\"><input type=\"button\" value=\"click\" class=\"input\" onclick=\"window.print();\"/></td></tr>"); 
win.document.write("</table>"); 
win.document.write("</body>"); 
win.document.write("</html>"); 
} 
</script> 
</head> 
<body> 
<form> 
<input type="button" value="Click me!" onclick="openWin();" /> 
</form> 
</body> 
</html> 

私はボタンをクリックしてください新しいウィンドウが表示されますが、ブラウザはページの読み込みを停止できません。ページには完全な機能がありますが、たとえばMozillaでソースコードを表示する場合は空白のページしか表示されません。 ...

+1

新しいウィンドウを開くとは関係ありません。ドキュメントが既に書いているときにdocument.writeを使用することに変わりはありません。現在のページでdocument.write( 'test')(ロード後)を実行すると、同じ効果が得られます。彼らがsaemである理由は、window.open()が完全で空のドキュメントを持つ新しいページを開くためです。 DOM機能を使ってHTML要素を追加することをお勧めします。 – Chris

答えて

6

コール

win.document.close(); 

(最後の書き込み()の後に)それは書き込みプロセスが終了し、文書が完了しているブラウザに通知します。

+0

はうまく動作します、ありがとうございます – tomasBULL

+0

。私は喜んで私のテストでそれを試したと思った。私はおそらく間違っているか何かを持っています。 ;-)良い仕事。 :) – Chris

1

を助けてくださいが、私はMozillaの中 ソースコードを見たいとき、たとえば、私は唯一の 空白のページを取得します。

これは、ソースがあなたのjavascriptによって作成されたためです。これはAJAXと同じです(ソースの変更を見ることはできません)。

おそらく、新しいページを開いて、GET/POSTまたはサーバー側から必要なパラメータを渡す方がよいでしょう。終わり

関連する問題