Javascript 检查窗口是否被脚本打开

MeP*_*ePo 3 javascript

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

我有用户协议,它们在新窗口中打开,这有效(当我尝试关闭窗口时)

<a href="JavaScript:window.close()" class="btn btn-default">Return</a>
Run Code Online (Sandbox Code Playgroud)

但我想要完成的是,如果用户直接转到/agreeement并单击关闭,它将他重定向到主页。因为现在如果我这样做,我会收到一条消息

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

我明白为什么。这就是为什么我想检查窗口是否未从脚本重定向到 index.html 的位置打开的原因。但我不知道我将如何进行检查

Suf*_*abr 5

当页面没有被另一个窗口打开时 window.opener 将为 null,因此无法关闭。

这段代码应该可以解决问题:

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

您可以在此处找到更多详细信息