我有一个JSP文件,其中包含以下JavaScript
<script type="text/javascript" language="javascript">
window.opener.myfunction();
window.close();
</script>
此作用文件在Chrome,Firefox上。它还可以在我的Internet Explorer 8和9上工作,该Explorer 8和9在VMware Virtual Machine中运行。但是,用户报告了一个错误,该错误事实证明窗口不起作用,并且没有调用我的功能。用户也使用IE9,但在本机Windows机器上运行。
我的问题是为什么它可以在我的IE9上工作,而不是他的?任何IE设置都会引起这一点吗?
非常感谢
我对window.opener
不知道,如果您可以修改开启器代码,则不需要。考虑复制功能的此代码:
w2 = window.open(...);
w2.opener = window;
如果开瓶器是您的,则将其分配给任何打开窗口的开瓶器。如果您担心并发,如果尚未设置开瓶器,则可以在打开的窗口中睡觉:
<script type="text/javascript" language="javascript">
(function f(){
if(window.opener){
window.opener.myfunction();
window.close();
}else{
setTimeout(f,1); //1ms should be enough. If not, wait again.
}
})()
</script>
引起一个例子... http://jsfiddle.net/kjbj3/6/
显然,您的弹出页面中会有标记,但您会得到漂移...
var win = window.open("", "win","width=200,height=100");
win.document.write('<a href="#" id="close" onclick="window.close();">This is myWindow!</a>');
win.focus();
win.opener.document.write('<p>This is the source window!</p>');