我有一个JSP文件,其中包含以下javascript
<script type="text/javascript" language="javascript">
window.opener.myfunction();
window.close();
</script>
这适用于Chrome,Firefox上的文件。它也适用于在VMWare虚拟机中运行的Internet Explorer 8和9。但是,用户报告的错误结果是window.opener不起作用且myfunction未被调用。用户也使用IE9,但在本机Windows机器上运行。
我的问题是,为什么它适用于我的IE9而不是他的?任何IE设置都可能导致此问题吗?
非常感谢
答案 0 :(得分:0)
以下是一个例子...... 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>');
答案 1 :(得分:0)
我不知道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>