开发者

Chrome: "open link in new tab" not firing the click event?

I'm developing a Chrome extension that does something when a <td> tag is clicked in a web page.

Here's some sample code:

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;
});

When I click the link, the localStorage key is set, if I click it with the mouse middle button, it also sets the key (and opens the link in a new tab).

The problem is when I use right-click and "open link in a new tab". In this case the click event doesn't seem to be fired and therefore the localStorage key will not be set.

Am I miss开发者_运维百科ing something? Is there any way to make the right-click -> "open link in new tab" fire the click event?

Please note that I don't want to add the listener to the <a> node, because of some complications in the real HTML I'm working on.


nice question...

There is not a rightclick event on browser, chrome send the events mousedown, mouseup and contextmenu,

I found the following webpage quite useful, though I've not checked the rightbutton part, the general description of chain of events is quite faithful.

For a quick reference: http://unixpapa.com/js/mouse.html


Use mousedown event in place of click:

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

In this way even if the user chooses to "Open link in a new tab", it still works.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜