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