Chrome: «открыть ссылку в новой вкладке», не вызывая событие щелчка? - PullRequest
10 голосов
/ 10 мая 2011

Я разрабатываю расширение 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 не будет установлен.

Я что-то упустил?Есть ли способ заставить щелчок правой кнопкой мыши -> «открыть ссылку в новой вкладке» вызвать событие щелчка?

Обратите внимание, что я не хочу добавлять прослушиватель в узел <a>, посколькунекоторых сложностей в реальном HTML, над которым я работаю.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 10 мая 2011

хороший вопрос ...

В браузере нет события щелчка правой кнопкой мыши, chrome отправляет события mousedown, mouseup и contextmenu,

Я нашел следующую веб-страницу весьма полезной, хотя я не проверил правую кнопку, общее описание цепочки событий достаточно точное.

Для быстрого ознакомления: http://unixpapa.com/js/mouse.html

0 голосов
/ 24 декабря 2018

Используйте mousedown событие вместо click:

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

Таким образом, даже если пользователь выбирает «Открыть ссылку в новой вкладке», он все еще работает .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...