0

次のようなものを使用して、開いた新しいウィンドウのDOMを拡張することは可能ですか:

var newWindow = window.open('about:blank', 'testWindow', '');
Element.extend(newWindow);

私はElement.extendがうまくいくと思っていました..しかし、私はDOMのプロトタイプへの参照を見ました。

何か案は?

ありがとうございました!モルテン

4

2 に答える 2

0

about:blankクロスドメイン セキュリティ ポリシーのため、おそらく機能しないでしょう。そのウィンドウが同じドメインのページを表示していない場合、新しいウィンドウの DOM にアクセスすることはできません。

第二に、ウィンドウが同じオリジンであっても、ウィンドウを開いてすぐにその DOM にアクセスすることはできません。ロードされるまで待つ必要があります。簡単な方法は、(DOMContentLoad または Window.onload の後) 読み込みが完了したときに、子ウィンドウが親ウィンドウの関数を呼び出すようにすることです。または、ループで DOM が使用可能かどうかを繰り返し確認することもできsetTimeoutます (子ウィンドウの準備が整うまでブラウザーがハングするため、while ループは使用しないでください)。DOM の準備ができたら、DOM でやりたいことを実行できます。

于 2010-05-09T04:45:59.937 に答える
0

新しいウィンドウでプロトタイプを再度ロードしたくないのはなぜですか??? つまり、参照はキャッシュにあるので、もう一度挿入しても問題ありません...理由はありますか???

于 2010-05-08T17:45:32.970 に答える