Я видел следующие способы помещения кода 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)»? .