我一直在开发一个与 window.opener
交互的弹出窗口。我发现在尝试附加对象时 IE 无法工作的特定问题。我设置了 demo page here .
基本上,该演示的作用是打开一个带有按钮的弹出窗口。它的目的是突出显示页面的部分内容,如我在 previous question 中所述。 .
在演示中,单击弹出窗口按钮会将两个 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/>")
创建您的元素。
关于jquery - 需要帮助追踪 jQuery 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289929/