首页 > 解决方案 > 试图从不同的窗口打开一个现有的窗口

问题描述

我正在尝试从不同的窗口重新打开现有窗口

例如 ,

在第一个窗口内,我正在打开第一页,在该页面上我有按钮,单击该按钮后,我将使用以下代码打开另一个名为“Connect”的窗口

   var connectWin = window.open("url to Connect page","Connect", "status=no,toolbar=no,menubar=no,location=no,directories=no,top=0,left=900,width=800,height=750");
   connectWin.name="Connect";

现在,在同一个窗口中,我正在遍历不同的页面(在同一个域中),在这个页面上我有另一个按钮,单击时我正在检查连接窗口是否已经打开,如果是,那么我打开现有的窗口,否则会出错

// code to take reference of an existing connect window
 var connectWnd = window.open('', 'Connect');


if( jQuery.type(connectWnd) === "undefined" || connectWnd.location.href === 'about:blank' ){         


    connectWnd.close();        
    $("#errorMessage").text("Connect page is not opened yet");


}else{

    //if connect is already open then post a message to that window
    connectWnd.postMessage(data);

}

我面临的问题是,如果用户在不同的窗口中打开另一个页面,我总是会Connect Page is not opened yet出错。

当用户尝试从不同的窗口(即窗口二)访问页面时,似乎会 window.open('', 'Connect');失败。那么有没有办法从浏览器中的任何窗口打开现有窗口。

标签: javascriptjquery

解决方案


无法从网页访问用户在其浏览器中打开的其他窗口,因为这会导致严重的安全问题。此外,不可能从一个页面重定向到浏览器中的另一个选项卡(除非它是使用 window.open 打开的),因为它已被广告网络滥用以强制浏览器进入另一个选项卡(之前您可以使用 alert()强制将用户导航到另一个选项卡)

涵盖所有边缘情况的最佳解决方案可能是开发浏览器扩展并与服务器同步操作以注册打开的选项卡(但即使在这种情况下,您也无法将他重定向到另一个浏览器上的窗口!)


推荐阅读