Может кто-то, пожалуйста, помогите мне с этим javascript: void (null) Я нашел, что он используется в кнопках со ссылками следующим образом
<a onclick="ProcessResponse()" href="javascript:void(null)" >Accept Data</a>
Может кто-то, пожалуйста, помогите мне с этим javascript: void (null) Я нашел, что он используется в кнопках со ссылками следующим образом
<a onclick="ProcessResponse()" href="javascript:void(null)" >Accept Data</a>
В основном происходит то, что onclick вызывается функция ProcessResponse(), а для параметра href установлено значение javascript:void(null), чтобы отключить поведение по умолчанию.
Большинство разработчиков просто используются для написания этого:
<a onclick="ProcessResponse(); return false;" href="#" >Accept Data</a>
Пример:
Предположим, что у нас есть эта ссылка:
<a onclick="ProcessResponse(); return false;" href="http://www.google.com" >Accept Data</a>
Обратите внимание, что href установлен на www.google.com, но когда вы на самом деле нажимаете на эту ссылку, он просто вызывает функцию ProcessResponse() и не переходит к www.google.com, потому что return false помещается после ProcessResponse() отключает поведение по умолчанию для ссылки, которая будет www.google.com. То же самое касается ссылки, которую вы опубликовали.
void является оператором JavaScript, но иногда он ошибочно принимается за функцию из-за общего использования скобок, которые следуют за ним. Цель void - оценить выражение без возврата значения. Следовательно, любое выражение вообще может быть void ed, оно не должно быть null и нередко вы видите void(0) или реже, void 0.
Когда вы используете javascript: в атрибуте href, следующее выражение будет оценено и его результат будет возвращен. Это можно увидеть, введя следующее в адресное окно вашего браузера:
javascript:prompt("test");
Введите что-нибудь в появившемся окне и нажмите enter/щелкните ok. Вы заметите, что страница исчезнет, и все, что вы набрали, появится. Теперь посмотрим, что произойдет, если мы добавим void 0;:
javascript:prompt("test"); void 0;
После нажатия кнопки "ОК" в приглашении ничего не происходит. Это void 0 handywork, оно возвращает undefined, и поэтому браузер ничего не делает. Это также относится к href в ссылках (не стесняйтесь попробовать). Все это можно было бы просто написать как javascript:void prompt("test");.
Как уже упоминалось, лучше использовать return false; из обработчика событий, а не использовать void в href. На самом деле, рекомендуется не использовать javascript: в атрибуте href вообще.
javascript:void(null)= ничего не делать.
Обратите внимание, что в обработчике событий onclick есть javascript-вызов - что-то делает (я предполагаю, что он принимает данные, обрабатывая ответ;).
Добавление команд void(0) в javascript - это общий трюк, когда вы используете псевдо-URL javascript: для запуска кода. Если вы опустите это, а script возвращает что-то, отличное от undefined, оно будет обработано так, как если бы оно было передано в document.write, то есть браузер переместится на пустую страницу.
Есть допустимые приложения для этого трюка (а именно, букмарклеты всегда должны заканчиваться так), но в примере, который вы ему дали, просто неправильно, по причинам, уже объясненным другими.