3

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2013-10-23T14:35:55.297 回答