К сожалению, я работаю с каким-то сторонним javascript, который вставляет ссылки на мои страницы.Вместо того, чтобы просто использовать эти ссылки как есть, я хочу использовать прокси-элементы, которые при щелчке вызывают событие click для сторонних ссылок.
Сторонние ссылки упаковывают javascript в атрибут href, например так::
<a id="horribleLink" href="javascript:doSomething()">Click me</a>
Мой прокси-элемент выглядит следующим образом:
<button rel="horribleLink" class="linkProxy">No, click me</button>
И немного jQuery'd Javascript, чтобы связать их вместе:
$('button.linkProxy').click(function(){
$('#' + $(this).attr('rel')).click();
});
Теперь,это прекрасно работает, если сторонняя ссылка просто стандартная ссылка (<a id="horribleLink" href="http://www.google.com">Click</a>
) или чуть менее ужасный щелчок (<a href="#" id="horribleLink" onclick="doSomething()">Click</a>
), но когда javascript находится внутри атрибута href, срабатывает кнопка'вообще ничего не делает.
Может кто-нибудь сказать мне, почему, и если есть разумный обходной путь?
Обновлен Как сказал Миллиметрик, основная причина заключается в том, что браузерыпредотвратить «фальшивые клики» на якорях - я удалил мой пример «стандартной ссылки», так как это еще одна ситуация, которая не работает.Однако обработчик onclick работает, как и следовало ожидать.