11

window.open() で新しいウィンドウを開きました。window.open() 呼び出しからの参照を使用して、新しいウィンドウにコンテンツを書き込みます。myWindow.document.body.innerHTML = oldWindowDiv.innerHTML; を使用して、古いウィンドウから新しいウィンドウに HTML をコピーしようとしました。しかし、それはうまくいきません。何か案は?

4

4 に答える 4

13

によって返される参照はwindow.open()、子ウィンドウのwindowオブジェクトです。したがって、通常行うことは何でも行うことができます。以下に例を示します。

var myWindow = window.open('...')
myWindow.document.getElementById('foo').style.backgroundColor = 'red'

これは、親ウィンドウと子ウィンドウのドメインが同じ場合にのみ機能することに注意してください。そうしないと、クロスサイト スクリプティングのセキュリティ制限によって停止されます。

于 2008-10-04T06:04:29.637 に答える
7

これでうまくいくと思います。

   function popUp(){

    var newWindow = window.open("","Test","width=300,height=300,scrollbars=1,resizable=1")

    //read text from textbox placed in parent window
    var text = document.form.input.value

    var html = "<html><head></head><body>Hello, <b>"+ text +"</b>."
    html += "How are you today?</body></html>"


    newWindow .document.open()
    newWindow .document.write(html)
    newWindow .document.close()

    } 
于 2008-10-04T06:02:51.463 に答える
0

Vijesh が言及しているフォーム ソリューションは、ウィンドウ間のデータ通信の背後にある基本的な考え方です。ライブラリ コードを探している場合は、まさにこれに対応する優れた jQuery プラグインがあります: WindowMsg (奇妙なスタック オーバーフローの自動リンク バグのため、下部のリンクを参照してください)。

ここの回答で説明したように: GMail でチャット ウィンドウのポップアウト機能を実装するにはどうすればよいですか? WindowMsg は各ウィンドウでフォームを使用し、次に window.document.form['foo'] ハッシュを使用して通信します。ダンが上で述べたように、これはウィンドウがドメインを共有している場合にのみ機能します。

また、他のスレッドで述べたように、JSON.org の JSON 2 ライブラリを使用して、文字列のみを使用して通信するのではなく、この方法でウィンドウ間で送信するための JavaScript オブジェクトをシリアル化できます。

ウィンドウ メッセージ:

http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/

于 2008-10-04T07:43:25.817 に答える
-1
myWindow.document.writeln(documentString)
于 2008-10-04T05:58:16.683 に答える