Я видел следующие методы помещения кода JavaScript в <a>
тег:
function DoSomething() { ... return false; }
<a href="javascript:;" onClick="return DoSomething();">link</a>
<a href="javascript:DoSomething();">link</a>
<a href="javascript:void(0);" onClick="return DoSomething();">link</a>
<a href="#" onClick="return DoSomething();">link</a>
Я понимаю идею попытки поместить действительный URL-адрес вместо простого кода JavaScript, на всякий случай, если у пользователя не включен JavaScript. Но для целей этого обсуждения я должен предположить, что JavaScript включен (они не могут войти без него).
Мне лично нравится вариант 2, поскольку он позволяет увидеть, что будет запущено - особенно полезно при отладке, когда в функцию передаются параметры. Я использовал его довольно много и не обнаружил проблем с браузером.
Я читал, что люди рекомендуют 4, потому что это дает пользователю реальную ссылку для перехода, но на самом деле # не "настоящий". Это никуда не денется.
Есть ли тот, который не поддерживается или действительно плохой, если вы знаете, что у пользователя включен JavaScript?
Связанный вопрос: Href для ссылок JavaScript: «#» или «javascript: void (0)»? .