2011-02-10 4 views
1

私は新しいウィンドウを開き、いくつかの要素とjavascriptタグを書き込もうとしています。生成されたjavascriptコードで新しいウィンドウを開くには?

var OpenWindow = window.open("ImagePreview.html", "mywindow","height=768,width=1024"); 
OpenWindow.document.write("<style type='text/css'>.normal{zoom:20%; -moz-transform:scale(0.2); cursor:pointer;}.notZoomed{zoom:20%; -moz-transform:scale(0.2); cursor:pointer;}.zoomed{zoom:100%; -moz-transform:scale(1); cursor:pointer;}</style>"); 
OpenWindow.document.write("<script type='text/javascript'>$(function(){$('#imageFullView').data('zoomed', false);$('#imageFullView').click(function(){$('#imageFullView').removeClass('normal');if($('#imageFullView').data('zoomed')){$('#imageFullView').removeClass('zoomed');$('#imageFullView').addClass('notZoomed');$('#imageFullView').data('zoomed', false);}else{$('#imageFullView').removeClass('notZoomed');$('#imageFullView').addClass('zoomed');$('#imageFullView').data('zoomed', true);}})"); 
OpenWindow.document.write("<img id='imageFullView' class='normal' src='" + data.previewImage + "' alt='img'/>"); 
OpenWindow.document.write("<br>"); 
OpenWindow.document.write("<center><a href='javascript:self.close()' target='_self'>Close</a></center>"); 

コードのように見える

、しかし、コードブレークコードでJavaScriptのタグを記述しようとしているとき。 その行コードを削除すると、改行せずに実行されます。

は、それがページwindow.open()にJavaScriptコードを追加するための正しい方法ではないですか?

jqueryの使用方法は?

ありがとうございます!

+0

しましたOpenWindow.document.close(); – kjy112

答えて

4

コードにクローズスクリプトタグが表示されません。

あなたはそれが台無しページのパーサをしないようにスクリプトタグを分割する必要があります。

...write("<script>...</sc"+"ript>"); 

なぜ新しいウィンドウに書き込みますか?クエリーストリングのパラメータとして必要な情報を渡して、新しいページにドキュメントを作成させてみてください。

+0

返信ありがとうございます...私のために働きました。この方法で.jsファイルを追加できますか? – Balu

1

スクリプトの終了タグを忘れてしまっています。

あなたはそれがスクリプトを書いているスクリプトを終了しないように、別の文字列にそれを置くことによって、例えば、終了スクリプトタグを壊すする必要がある場合があります...</scr'+'ipt>...

0

あなたがHTMLを書いていると仮定すると、あなたが持っています2つのオプション。

  1. 任意の終了タグのことを確認してください
  2. 外部ファイルにスクリプトを置き、終了タグのようには見えません。

オプション2を使用する場合は、</something>のインスタンスを<\/something>に変更します。

JavaScript文字列内では、2つの構文が同じです。 HTMLのscript要素内

</something>はscript要素を終了します。ブラウザはHTML 4を正しく実装しない傾向がありますので、実際にはこれを行うのは通常</script>ですが、標準コンプライアンス(およびValidatorを便利なツールとして使用できるようにするため)ではすべての要素に対してこれを行う必要があります。

一部の人々は、あなたの代わりに"<" + "/script>""</script>を変更することをお勧めします。こんなことしないで。読み込みが難しく、型を決めるのが難しく、(マイクロ最適化の土地で)ダウンロードするバイト数が増え、実行効率が低下します(JSでは文字列の連結が比較的遅い)。

あなたはXHTMLを書いているでは、その後、あなたの代わりにCDATA and Appendix Cの素晴らしい世界に対処してもらいます。

関連する問題