Javascript 当子窗口准备就绪时,使用jquery将html从父窗口注入子窗口

Javascript 当子窗口准备就绪时,使用jquery将html从父窗口注入子窗口,javascript,jquery,code-injection,childwindow,document-ready,Javascript,Jquery,Code Injection,Childwindow,Document Ready,我的初步代码是这样的 $j(document).ready(function() { var w = window.open(childPage); $j(w.document).ready(function() { $j('#DestinationElement', w.document).html($j('#SourceElement').html()); }); }); 然而,这仅在我在html注入语句上设置断点时适用,这意味着在执行注入之前不会真正等待子

我的初步代码是这样的

$j(document).ready(function() {
   var w = window.open(childPage);

   $j(w.document).ready(function() {
      $j('#DestinationElement', w.document).html($j('#SourceElement').html());
   });
});
然而,这仅在我在html注入语句上设置断点时适用,这意味着在执行注入之前不会真正等待子窗口准备就绪


有人能修一下吗?谢谢。

以下是一些备选方案: 将事件侦听器附加到窗口onload事件。 (但在IE中,您将使用attachEvent来“onload”)

在子窗口本身中,在文档准备就绪时获取开场白的html

$j(document).ready(function() {
   $j('#DestinationElement').html($j('#SourceElement', window.opener.document).html());
});

但我仍然感到困扰的是,我不明白原始解决方案失败的原因。

不确定原始解决方案失败的原因。jquery可能使用父窗口的数组、字符串等类型,因此类型检查失败。另一个选项是,当您将
w.document
提供给jquery时,它尚未创建。一些浏览器在几百毫秒后创建新文档,因此它不是同步的。捕获子窗口的页面负载绝非易事。。。以下是在大多数浏览器中执行此操作的方法: