我一直在研究一个与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的问题。
答案 0 :(得分:3)
我不认为IE会让您将在一个窗口中创建的元素追加到另一个窗口的DOM中。这真的很挑剔。同样,如果你将构造好的Javascript对象从一个窗口传递到另一个窗口,它有时会被吓坏,特别是如果创建窗口稍后消失的话。
尝试使用window.opener.$("<div/>")
创建元素。