Chrome:“在新标签页中打开链接”没有触发点击事件?

时间:2011-05-10 09:48:00

标签: javascript google-chrome javascript-events

我正在开发一个Chrome扩展程序,可以在网页中点击<td>标记时执行某些操作。

以下是一些示例代码:

HTML:

<table>
    <tr>
        <td id="mytest"><a href="http://blablabla.com">Foo Bar</a></td>
    </tr>
</table>

使用Javascript:

var myTd = document.getElementById("mytest");
myTd.addEventListener("click", function() {
    localStorage["foobar"] = 1;
});

当我点击链接时,会设置localStorage键,如果我用鼠标中键点击它,它也会设置键(并在新选项卡中打开链接)。

问题是当我使用右键单击并“在新选项卡中打开链接”时。在这种情况下,似乎没有触发click事件,因此不会设置localStorage键。

我错过了什么吗?有没有办法进行右键单击 - &gt; “在新标签页中打开链接”会触发点击事件?

请注意,我不想将监听器添加到<a>节点,因为我正在处理的实际HTML中存在一些复杂性。

提前致谢。

2 个答案:

答案 0 :(得分:3)

好的问题......

浏览器上没有右键单击事件,chrome发送事件mousedown,mouseup和contextmenu,

我发现以下网页非常有用,虽然我没有检查右键部分,事件链的一般描述非常忠实。

快速参考:http://unixpapa.com/js/mouse.html

答案 1 :(得分:0)

使用 mousedown事件代替click

var myTd = document.getElementById("mytest");
myTd.addEventListener("mousedown", function() {
    localStorage["foobar"] = 1;
});

通过这种方式,即使用户选择“在新标签页中打开链接”,该链接仍然有效