我一直认为与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追查问题的帮助。

有帮助吗?

解决方案

我不认为IE浏览器可以让你附加在一个窗口中创建到另一个窗口的DOM元素。这真是挑剔一番。类似地,它被有时吓了一跳如果传递构造的Javascript对象从一个窗口到另一个,特别是如果所述创建窗口后消失。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top