Что означает "javascript: void (0)"

В дополнение к техническому ответу, javascript:void означает, что автор делает это неправильно.

Нет веских оснований для использования псевдо-URL (*). На практике это вызовет путаницу или ошибки, если кто-нибудь попробует такие вещи, как «ссылка на закладку», «открыть ссылку на новой вкладке» и т. Д. Это происходит довольно часто, когда люди привыкли к среднему клику для новых вкладок: он выглядит как ссылка, вы хотите прочитать ее на новой вкладке, но она оказывается не реальной ссылкой вообще, и дает нежелательные результаты, например, пустую страницу или ошибку JS при среднем нажатии.

является общей альтернативой, которая может оказаться менее плохим. Однако вы должны помнить return false из своего обработчика событий onclick , чтобы предотвратить следование ссылки и прокрутку вверху страницы.

В некоторых случаях может оказаться полезным местом для ссылки на ссылку. Например, если у вас есть элемент управления, вы можете щелкнуть по нему, чтобы открыть ранее скрытый , имеет смысл использовать для ссылки на него. Или, если есть не-JavaScript способ сделать то же самое (например, "thispage.php? Show = foo", который устанавливает foo, видимый для начала), вы можете ссылаться на это.

В противном случае, если ссылка указывает только на какой-либо скрипт, это не ссылка и не должна быть помечена как таковая. Обычным подходом было бы добавить onclick в , или без href и каким-то образом создать его, чтобы он был очищен, вы можете нажать на него. Это то, что StackOverflow [сделал на момент написания; теперь он использует href="#" ].

Недостатком этого является то, что вы теряете управление клавиатурой, поскольку вы не можете вставлять в span/div/bare-a или активировать его с пространством. Независимо от того, является ли это на самом деле недостатком, зависит от того, какое действие элемент должен предпринять. Вы можете с некоторым усилием попытаться имитировать взаимодействие с клавиатурой, добавив tabIndex к элементу и прослушав нажатие клавиши Space. Но на 100% не воспроизводится реальное поведение браузера, не в последнюю очередь потому, что разные браузеры могут реагировать на клавиатуру по-разному (не говоря уже о невизуальных браузерах).

Если вы действительно хотите элемент, который не является ссылкой, но который может быть активирован как обычно с помощью мыши или клавиатуры, то вы хотите, чтобы (или так же хорош, для простого текстового содержимого). Вы всегда можете использовать CSS, чтобы восстановить его, чтобы он выглядел скорее как ссылка, чем кнопка, если хотите. Но поскольку он ведет себя как кнопка, вот как вы должны это пометить.

(*: на сайте, в любом случае, очевидно. Они полезны для букмарклетов. javascript: псевдо-URL - это концептуальная странность: локатор, который не указывает на местоположение, а вместо этого вызывает активный код внутри текущего местоположения. Они вызвали серьезные проблемы с безопасностью как для браузеров, так и для webapps и никогда не должны были быть изобретены Netscape.)

Стоит отметить, что вы иногда видите void 0 при проверке неопределенного, просто потому, что для этого требуется меньше символов.

Например:

Something === undefined

Something === void 0

По этой причине некоторые методы минимизации заменяют неопределенный void 0.

2018-12-04T00:00Z

void - это оператор, который используется для возврата undefined значения, поэтому браузер не сможет загрузить новую страницу.

Веб-браузеры будут пытаться использовать все, что используется в качестве URL-адреса, и загружать его, если это не функция JavaScript, которая возвращает значение null. Например, если щелкнуть ссылку, например:

Click Me

то появляется предупреждающее сообщение без загрузки новой страницы, и это потому, что alert - это функция, которая возвращает нулевое значение. Это означает, что когда браузер пытается загрузить новую страницу, он видит нуль и не имеет ничего для загрузки.

Важно отметить, что оператор void состоит в том, что он требует значения и не может использоваться сам по себе. Мы должны использовать его так:

I am a useless link

2018-12-11T00:00Z

Он очень популярен для добавления функций JavaScript в HTML-ссылку, например: которую вы видите на многих веб-страницах. Код выглядит так:

Print

Почему нам нужно "href" то время как "onclick" может выполнить свою работу? Потому что, если мы опускаем "href" , когда пользователи наводят над текстом «Печать», курсор изменится на «I». Наличие "href" позволяет отображать курсор, как если бы это была гиперссылка: указывающая рука.

PS: Существует два метода: 1. href="javascript:void(0);" и 2. href="#" - оба имеют тот же эффект. Но первый требует, чтобы JavaScript был включен в веб-браузере, а второй - нет. Таким образом, второе, похоже, более совместимо.

2018-12-18T00:00Z

Это означает, что он ничего не сделает. Это попытка заставить ссылку «не перемещаться» нигде. Но это неправильный путь.

Вы должны просто return false в событие onclick , например:

hello

Однако, чтобы сделать ваш сайт совершенно потрясающим, обычно вы включаете ссылку, которая выполняет одно и то же действие, если человек, просматривающий его, не хочет запускать JavaScript.

hello

2018-12-25T00:00Z

Оператор void вычисляет данное выражение и затем возвращает undefined .

Оператор void часто используется просто для получения undefined примитивного значения, обычно используя « void(0) » (что эквивалентно « void 0 »). В этих случаях глобальная переменная undefined может использоваться вместо этого (предполагается, что ей не присвоено значение, отличное от значения по умолчанию).

Здесь приводится объяснение: оператор void .

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

2019-01-01T00:00Z

Веб-разработчики используют javascript:void(0) потому что это самый простой способ предотвратить поведение тега по умолчанию. void(*anything*) возвращает undefined и является ложным значением. и возврат значения фальши похоже на return false в событие onclick тега, которое предотвращает его поведение по умолчанию.

Поэтому я думаю, что javascript:void(0) - это самый простой способ предотвратить поведение тега по умолчанию.

Большинство браузеров не будут анализировать расширенный JavaScript в




Top