我正在开发一个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中存在一些复杂性。
提前致谢。
答案 0 :(得分:3)
浏览器上没有右键单击事件,chrome发送事件mousedown,mouseup和contextmenu,
我发现以下网页非常有用,虽然我没有检查右键部分,事件链的一般描述非常忠实。
答案 1 :(得分:0)
使用 mousedown
事件代替click
:
var myTd = document.getElementById("mytest");
myTd.addEventListener("mousedown", function() {
localStorage["foobar"] = 1;
});
通过这种方式,即使用户选择“在新标签页中打开链接”,该链接仍然有效。