Ответ 1
ненавязчивый Javascript (ваш третий пример) с изящное деградация - лучший выбор.
Из моего опыта я знаю три разных способа выполнения функции Javascript, когда пользователь нажимает на ссылку
Используйте атрибут onclick
в ссылке
<a href="#" onclick="myfunction();return false;">click me</a>
Используйте href
по ссылке
<a href="javascript:myfunction();">click me</a>
Не трогайте ссылку, делайте все в js
<a href="#">click me</a>
(в Javascript мы остановим событие по умолчанию и вызовите функцию)
Какой из них лучше? Каковы преимущества и недостатки?
EDIT удалил "javascript:" на onclick
ненавязчивый Javascript (ваш третий пример) с изящное деградация - лучший выбор.
Всегда полезно иметь ссылку в атрибуте href, чтобы поддерживать пользователей, которые отключили JavaScript в своих браузерах.
<a href="http://www.mywebsite.com/javascriptdisabled.html" onclick="myfunction(); return false;">click me</a>
Ничего из перечисленного. Используйте событие click
(назначенное либо как атрибут, либо через script, если вы предпочитаете) и имеете реальный URL-адрес в качестве резервной копии:
<a href="realpage.html" onclick="myfunction(); return false;">click me</a>
или HTML:
<a href="realpage.html" id="myLink">click me</a>
Script:
document.getElementById("myLink").onclick = function() {
myfunction();
return false;
};
Кроме того, не префикс кода в атрибутах обработчика событий с помощью javascript:
. Он неверен и только не вызывает ошибку по совпадению (то есть в JavaScript, javascript:
создает метку под названием javascript
).
Или, наоборот, используйте jQuery
$(function() {
$('[id$=myLinkID]').click(function(e) {
myFunction();
});
});