Использование ОБА Href & click listener - PullRequest
1 голос
/ 25 января 2012

У меня есть плагин для браузера, над которым я работаю, и я хочу, чтобы он вел себя определенным образом, когда пользователь нажимает на кнопки.Не ограничиваясь, но в том числе поведением ссылок!

Проблема заключается в том, что плагин должен работать для самых разных сайтов, а некоторые из этих сайтов используют страшный псевдопротокол, такой как:
<a href="javascript: showSomeElement();">Show Element</a>

В настоящее время мое поведение добавлено к тегу привязки через
anchor.addEventListener('click', superAwesomeFunction);

К сожалению, это проблема, когда прослушиватель щелчков срабатывает только один раз.Если я preventDefault(), конечно, слушатель щелчков застрянет, но я сейчас сломал хост-сайт!В противном случае нажатие на ссылку запускает прослушиватель щелчков, но только при первом щелчке.Мне интересно, почему моя superAwesomeFunction () не запускается снова, если ссылка нажата во второй раз.href="javascript:things()" делает больше, чем я знаю?

Ответы [ 2 ]

1 голос
/ 25 января 2012

Можно добавить прослушиватель событий к ссылке, для которой установлен вызов функции JavaScript в атрибуте href.

Вот jsFiddle , который показывает, что он работает. Обе функции срабатывают при каждом нажатии на ссылку.

Должно быть что-то еще происходит с вашим кодом, помимо того, что мы видим в том, что вы нам дали.

0 голосов
/ 25 января 2012

Если вам нужно подождать пользователя некоторое время и перейти по URL, тогда вы можете добавить некоторый код в конец процесса вашей superAwesomeFunction:

document.location.href = $(this).attr("href");
...