为什么Windows.开放器不在Internet探索9



我有一个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>');

最新更新