对于IE 8或更高版本,window.open的替代方案

时间:2013-12-16 18:31:10

标签: javascript internet-explorer internet-explorer-8

我们要求在新窗口中打开外部应用程序,并且仍然有一个句柄可以关闭它。

这些是我们必须遵守的限制:

  1. 我们必须提交GET请求。
  2. 外部URl不希望对调用应用程序进行太多控制。例如,不允许在iframe中打开外部应用程序。
  3. 调用应用程序需要根据收到标记指示会话的时间来关闭外部URL窗口。
  4. 到目前为止,我们尝试过window.open并进行了几次扭曲和调整,但任何解决方案都无法在IE 8或更高版本中运行。

    我们在微软论坛上提出了一张票,但只是想知道,如果有任何替代window.open来实现这一点。

    系统配置:

    Windows 7-64bit操作系统,IE 8.0.7601.17514,256密码强度。

    未解决的挑战是获得一个句柄并关闭新窗口。

    我们尝试过的选项:

    方法1:

    var handle = window.open("http://www.example.com/details.jspuser=test&age=20", "windowname");
    handle.close();   // Here handle is coming as null.
    

    方法2:

    JavaScript的:

       var target =  "windowname";
       var handle = window.open("about:blank",target);
       if(handle!= null) // here we are getting the handle object
       {
           document.getElementById('form1').target = target; // setting the target to Pop window
           document.getElementById('form1').submit();  // Now this will submit the form and send the GET request to pop up
           alert(handle.closed);  // Noticed that this line is giving "true", even though we have not closed the pop up
           handle.close(); // does not close the pop up window
       }
    

    HTML

    <form id="form1" method="GET" action="http://www.example.com/details.jsp
        <input type="hidden" name="user" value="test">
        <input type="hidden" name="age" value="20">
    </form>
    

    解决方法:

    如果我们以受保护模式打开浏览器:此问题会解决。

0 个答案:

没有答案