需要帮助跟踪一个jQuery的bug
问题描述:
我一直在处理与window.opener
交互的弹出窗口。我发现IE试图附加一个对象时无法正常工作。我已经设置了demo page here。需要帮助跟踪一个jQuery的bug
该演示基本上是用一个按钮打开一个弹出窗口。它旨在突出显示页面的各个部分,如我在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 UI吗?他们有一个对话框组件可能有所帮助: http://jqueryui.com/demos/dialog/ – 2010-02-18 16:01:54
嗨卢克和感谢您的评论,但我想添加一个div到窗口开启器来突出显示页面的一部分。它需要定位和半透明,所以一个对话框不是我想要的。 – Mottie 2010-02-18 16:20:38