1

我一直在研究一个与window.opener. 我发现尝试附加对象时 IE 无法正常工作的特定问题。我在这里设置了一个演示页面

基本上演示的作用是打开一个带有按钮的弹出窗口。正如我在上一个问题中所述,它旨在突出显示页面的某些部分。

在演示中,单击弹出窗口按钮会将两个 div 附加到window.opener. 一个div作为字符串添加,第二个作为对象添加。尝试附加对象时在 IE 中出现错误。这是javascript:

$(':button').click(function(){
 $('#clicked').empty().show().html('Click detected!').fadeOut();
 var str = '<div class="highlight" style="position:absolute;height:50px;width:50px;left:150px;top:100px;background:#fc0;zIndex:99;">str</div>';
 var obj = $('<div/>', {
  'class': 'highlight',
  css: {
   position:   'absolute',
   height:     '50px',
   width:      '50px',
   left:       '100px',
   top:        '100px',
   background: '#08f',
   zIndex:     99
  }
 }).html('obj');
 try { $(window.opener.document.body).append(obj); } catch(err) { alert(err.description) };
 $(window.opener.document.body).append(str);
})

所以,我正在寻求帮助来追踪 jQuery 的问题。

4

1 回答 1

3

我认为 IE 不会让您将在一个窗口中创建的元素附加到另一个窗口的 DOM 中。对此真的很挑剔。同样,如果您将构建的 Javascript 对象从一个窗口传递到另一个窗口,它有时会被吓坏,尤其是在创建窗口稍后消失的情况下。

尝试使用window.opener.$("<div/>")来创建您的元素。

于 2010-02-18T16:05:31.330 回答