Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在新浏览器选项卡中检测url更改并获取url?_Javascript_Typescript_Knockout.js - Fatal编程技术网

Javascript 如何在新浏览器选项卡中检测url更改并获取url?

Javascript 如何在新浏览器选项卡中检测url更改并获取url?,javascript,typescript,knockout.js,Javascript,Typescript,Knockout.js,我有一个链接,可以在新选项卡中打开url,如下所示: <a href="#" target="teamViewer" style="color: deepskyblue"><span data-bind="text: connectorLoginLink, visible: shouldShowConnectorLoginLink, click: openTeamViewerUrl"></span></a> var currentPage = n

我有一个链接,可以在新选项卡中打开url,如下所示:

<a href="#" target="teamViewer" style="color: deepskyblue"><span data-bind="text: connectorLoginLink, visible: shouldShowConnectorLoginLink, click: openTeamViewerUrl"></span></a>
var currentPage = newWindow.location.href;

    setInterval(function () {
        console.log(currentPage);
        if (currentPage !== newWindow.location.href) {
            // page has changed, set new page as 'current'
            currentPage = newWindow.location.href;

            console.log(currentPage);
            // do other thing...
        }
    }, 1000);
我想将打开的选项卡设置为一个新窗口对象,然后使用如下方式监视它:

<a href="#" target="teamViewer" style="color: deepskyblue"><span data-bind="text: connectorLoginLink, visible: shouldShowConnectorLoginLink, click: openTeamViewerUrl"></span></a>
var currentPage = newWindow.location.href;

    setInterval(function () {
        console.log(currentPage);
        if (currentPage !== newWindow.location.href) {
            // page has changed, set new page as 'current'
            currentPage = newWindow.location.href;

            console.log(currentPage);
            // do other thing...
        }
    }, 1000);
我在尝试window.open时返回错误:阻止在新窗口中打开“”,因为请求是在沙盒框架中发出的,该框架的“允许弹出窗口”权限未设置。


我真的被困在这上面了。如何绕过允许弹出窗口?可以使用其他方法实现此功能吗?

要检测URL的更改,可以使用
窗口上的javascript
卸载
事件,请参阅


浏览器会阻止弹出窗口,除非它们是通过用户操作(如单击)创建的。在
addEventListener('click',function(){…},false)中打开它将尝试此操作。谢谢你的回复。我仍然怀疑能否做到这一点。似乎我们无法控制其他域的窗口来侦听url更改。我不确定是否有办法解决这个问题。有什么想法吗?Javascript不能访问跨域文档以防止安全问题。但我认为事件是有效的,所以如果url发生更改,newWindow.onload将启动。谢谢您的回答。这可以检测url是否被导航,但我无法从新窗口获取更改的url。我没有在javascript中执行类似操作的权限:newWindow=window.open(url);