window.open
空のウィンドウを作成し、jquery DOM 操作メソッドを使用してデータを入力しています。私がやりたいことの 1 つは、親ウィンドウにあるものと同じスクリプトがすべて新しいウィンドウにあることを確認することです。また、すべてのスタイル シートと、親ウィンドウの HEAD セクションにあるその他のデータを複製しているので、次のようにすることにしました。
$(floatingMap.window.document.head).append(
$("<base>", {"href": location.href})).append(
$("head").children().clone()));
これにより、最初<base>
にソース ドキュメント内の相対 URL が正しく解釈されるようにするタグが作成され、次にソース ドキュメントの head セクションからすべてのタグのコピーが挿入されます。Chrome の DOM インスペクターを使用して、新しいウィンドウで挿入されたオブジェクトを調べることができます。すべて問題ないように見えますが、問題は、スクリプトが読み込まれていないことです。一方、スタイルシートは正常にロードされています。スクリプトを正しくロードするためにできることはありますか?
アップデート:
関連する可能性のある問題として、次のコードで予期しない結果が生じることがわかりました。
$(floatingMap.window.document.head).append(
$("<script>").text("window.opener.childWindowReady()"));
これにより、指定されたコードが、子ウィンドウではなく、親ウィンドウのコンテキストで実行されます。なぜこれが当てはまるのでしょうか?