需要帮助追踪jQuery错误

时间:2010-02-18 15:50:55

标签: jquery debugging internet-explorer window.opener

我一直在研究一个与window.opener交互的弹出窗口。我发现IE在尝试追加对象时无法正常工作。我已经设置了demo page here

基本上演示的功能是打开一个带按钮的弹出窗口。它旨在突出显示我在previous question中描述的页面部分。

在演示中,单击弹出窗口按钮会向window.opener添加两个div。一个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的问题。

1 个答案:

答案 0 :(得分:3)

我不认为IE会让您将在一个窗口中创建的元素追加到另一个窗口的DOM中。这真的很挑剔。同样,如果你将构造好的Javascript对象从一个窗口传递到另一个窗口,它有时会被吓坏,特别是如果创建窗口稍后消失的话。

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