【问题标题】:Javascript Check if window was opened by script [duplicate]Javascript检查窗口是否被脚本打开[重复]
【发布时间】:2016-11-06 23:04:03
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • window.opener 返回 null 如果没有开启者引荐来源网址

标签: javascript


【解决方案1】:

当页面没有被其他窗口打开时,window.opener 为空,因此无法关闭。

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

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

您可以找到更多详情here

【讨论】:

  • 如果是重复的,请不要在链接中发布答案,将其标记为重复。
  • 我会试试这个并给你一个答案。谢谢
  • @MarcosPérezGude 另一个问题是不同的
  • 但是提供了这个问题的答案。 Stackoverflow 不是自定义服务,它是一个所有问题都会对其他用户有用的网站。如果我们只回答特定案例,这个社区就会失去意义
  • 不,它没有谈论!= null ...它只是解释什么是window.opener ...如果您是新开发人员阅读不会告诉如何检查页面是否由脚本或新窗口打开....
【解决方案2】:

我需要这样做已经有一段时间了,但是您可以使用 window.opener 获取打开当前窗口的窗口

【讨论】:

  • 不知道。谢谢会试试这个
猜你喜欢
  • 2011-06-06
  • 2012-08-18
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 2012-09-01
  • 2017-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多