检查锚点打开的窗口/标签是否已关闭

时间:2013-10-23 14:24:16

标签: javascript

使用JavaScript打开窗口时,可以捕获对打开的窗口/选项卡的引用,然后可以使用该引用来查看窗口/选项卡是否已再次关闭。这样的事情(有点人为的例子):

var foo = window.open( 'http://www.foo.bar' );
...
if ( !foo || foo.closed ) {
    ...

但是有可能使用锚元素实现类似的东西吗?例如,如果我有链接

<a href="http://www.foo.bar" target="_blank">Foo</a>

在我的网站上,是否有任何方法可以附加事件监听器并获取对触发此锚元素时打开的窗口/选项卡的引用,然后在JavaScript中使用它?听取点击事件可能会有效,但还有其他方法可以更好地覆盖它吗? (例如,您可以选择一个锚元素,然后按Enter键也可以打开它,这不会被注册为点击事件)

1 个答案:

答案 0 :(得分:1)

在关注锚标记时按Enter键将触发现代浏览器中的click事件处理程序。我在Chrome 30中对此进行了测试。

证明:http://jsfiddle.net/HZvPT/

因此,您的点击处理程序将获取href属性,调用window.open(存储窗口的返回值),然后e.preventDefault()以阻止锚标记执行其默认行为(这将打开第二个窗口,不好)。