Должен ли я использовать # или JavaScript: void (0); на атрибут href моих пустых ссылок

Если вы поощряете использование # и предотвращаете поведение по умолчанию (прокрутите до верхней части документа), это неизбежно приводит к тому, что некоторые используют return false значение функции в событии onclick, т.е.

Hey
Hey
document.getElementById("link").addEventListener("click",function(){
return false;
},false);

И если вы вместо этого используете javascript: void, вам не нужно возвращать false для события click, как было сказано ранее, void (0) — это наименьший возможный сценарий, который оценивается как неопределенный, т.е.

Hey

Тот же эффект, что и при использовании href="#"меньше и понятнее.

JavaScript: недействительным (0)

Когда используешь javascript: в навигации возвращаемое значение выполненного скрипта, если оно есть, становится содержимым нового документа, который отображается в браузере. void Оператор в JavaScript заставляет возвращаемое значение выражения, следующего за ним, возвращать undefined, что предотвращает выполнение этого действия.

Причина, по которой вы хотите сделать это с помощью ссылки, состоит в том, что обычно URL-адрес javascript: перенаправляет браузер на текстовую версию результата оценки этого JavaScript. Но если результат не определен, браузер остается на той же странице. void (0) — это наименьший возможный скрипт, который оценивается как неопределенный.

Тем не мение, javascript:void(0); нарушает Политика безопасности контента на CSP с поддержкой HTTPS. Политика безопасности контента (CSP) — это дополнительный уровень безопасности, который помогает обнаруживать и смягчать определенные типы атак, включая Межсайтовый скриптинг (XSS) и атаки с использованием данных. Эти атаки используются для всего: от кражи данных до порчи сайта или распространения вредоносных программ.

Поэтому, если вы являетесь стандартным религиозным разработчиком, вы можете использовать href = «#» вместо javascript: void, чтобы предотвратить нарушение любого закона.

HREF = «#»

Хеш является самым безопасным на тот случай, если у вашего пользователя отключен Javascript.

Вы можете легко решить эту проблему, используя jQuery для всех ссылок с этим значением в вашем документе:

$('a[href="#"]').click(function(e) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
});

Обратите внимание, что вы также можете даже возвращать false непосредственно в атрибуте onclick элемента, который будет иметь тот же эффект:

Hey, i'll do nothing

Вывод и рекомендации

Использовать javascript:void(0) если хочешь быть сырым, точным и быстрым.

использование href="#" и предотвратить событие по умолчанию с помощью JavaScript, чтобы быть последователем стандартов.

Ссылка на основную публикацию
Adblock
detector