检查窗口是否由JavaScript中的脚本打开

Check if window was opened by script in JavaScript

本文关键字:脚本 JavaScript 窗口 是否 检查      更新时间:2023-09-26

是否可以检查脚本是否使用JavaScript打开了窗口?

我有用户协议,它们在一个新窗口中打开,当我试图关闭窗口时,这是有效的:

<a href="JavaScript:window.close()" class="btn btn-default">Return</a>

但是我想完成的是,如果用户直接进入/agreeement并点击关闭,它会将他重定向到主页。

在本例中使用我当前的代码,我得到一条消息:

脚本只能关闭由它打开的窗口。

我明白为什么。这就是为什么我想检查窗口是否没有从脚本打开,然后在这种情况下重定向到索引。

窗口。当页面没有被其他窗口打开时,Opener将为空,因此不能关闭。

下面的代码应该能达到这个目的:

function goAway() {
    if(window.opener === null) {
        window.location.href = '<YOUR_DEFAULT_URL>';
    }
    else {
        window.close();
    }
}

你可以在这里找到更多的细节

我需要这样做已经有一段时间了,但是您可以使用window.opener

获得打开当前窗口的窗口。