суббота, 19 ноября 2016 г.

Javascript void 0 что делать





Верстальщику нужно было создать кусок текста, при клике на который вызывается обработчик onclick и больше ничего не происходит. Вместо кнопки (input или button) или простого span-а он почему-то решил непременно использовать ссылку (a). Если оставить атрибут href пустым (""), то при клике на ссылку страница перезагрузится. Если записать в него решетку ("#"), то по клику страница перемотается на самый верх. URL вида javascript:void(0) указывает браузеру, что нужно выполнить код JS - функцию void(), которая ничего не загружает, не прокручивает и вообще ничего не делает.


Зачем используется такой хитрозакрученный вариант - непонятно. Видимо, верстальщик когда-то подсмотрел этот прием в древних нетскейповских доках по JS и теперь бездумно сует его куда попало. Лучше сделать по-другому:


- использовать кнопку или просто span с onclick:


<span class="button" onclick="fullScreen('jscript_full_screen_demo. html')">. ;


- если все-таки хочется использовать ссылку, то можно засунуть вызов функции в href:


<a href="javascript:fullScreen('jscript_full_screen_demo. html')">. ;


- вежливый и дружелюбный верстальщик предусмотрел бы возможность "вручную" открыть эту ссылку на новой вкладке (по shift-клику, по средней кнопке мыши):


<a href="jscript_full_screen_demo. html" onclick="fullScreen('jscript_full_screen_demo. html'); return false">. (этот вариант будет работать и при отключенных скриптах).



Не работает javascript:void(0) для ссылки


SergeyNetIt сказал(-а): 21.11.2013 18:44


Не работает javascript:void(0) для ссылки


Для ссылки в которой будут находятся вложенные пункты меню, я прописал javascript :void(0). Срабатывает только в Mozille. В опере пишет ошибка URL-адрес: :void(0)" target="_blank" rel="nofollow" id="1/forum/showthread. php? t=51597">http://javascript :void(0) содержит номер порта вне диапазона от 1 до 65535. Не работает также ив сафари и ie6-9. В хроме открывается белый экран about :blank.



В защиту javascript:void(0); 16.05.2014 19:18


Намедни я решил посмотреть новости через Google. Нажимаю правой кнопкой на ссылку «другие новости» и в контекстном меню нет пунтка открыть в новом окне. При нажатии через ctrl новая вкладка не открывается. Я решил глянуть исходный код и вижу javascript: void (0); Для меня это стало новостью, ведь все что читал до этого — было однозначно против такого решения. Я имею ввиду ситуацию когда ссылка запускает какой-то js код и по прямому назначению не используется, то какую разметку лучше использовать? … или…


Void лучше href=»#» поскольку пользователя нет возможности открыть новое окно с тем-же самым документом. Т. е. поведение href=»#» при открытии в новом окне для пользователей неожиданно. Если какой-то возможности нет — то ее не должно быть в интерфейсе. Если на пальцах пользователь: кликает на 15 ссылок правой кнопкой мыши и открывает каждую в новой вкладке. В итоге у него 16 вкладок с одним и тем-же документом.


Более того, void «правильней» href=«javascript: void (0);» — ничего не делать. href=»#» — перейти в начало страницы.


Чтобы если вдруг стандарт «javascript:» отменят не было коллизий используйте вместе с ним onclick=«return false;». Подсмотрено у Гугл ньюс:


Кода, конечно, много, но так удобнее для пользователей.


P. S. под href=»#» я подразумевал когда хреф содержит только решетку. Если у вас есть ссылка href=»#someMark» и документ нормально реагирует на метку, то void не нужен.



Не работают JavaScript


Всем привет.


Перелопатил весь форум по схожим темам и не нашел решения проблемы.


Три дня назад я обнаружил такую проблему у себя на ноутбуке (win7 sp1 x64):


При использовании firefox (пробовал и 7, и 8 версию) перестали отображаться или работать почти все элементы, основанные на javasript (неделю назад все прекрасно работало).


Проверил на множестве сайтов/форумов - везде одно и то же. Если какая-либо кнопка подразумевает исполнение скрипта типа "javascript://", то ноль реакции.


В число нерабочих попали также кнопки воспроизведения аудиозаписей известного сайта ВКонтакте.


Следуя подсказкам с вашего форума:


1. при вводе в адресную строку javascript:alert("Работает!"); --- ноль реакции


2. javascript в настройках браузера включен, в about:config - enabled


3. Временные файлы удалялись ccleaner'ом - не помогает


4. создавал новый профиль - не помогает


5. никаких дополнений в данный момент не установлено. был только AdblockPlus, который я и отключал и в конце концов удалил - все равно не работает ничего.


6. переустановка браузера не помогает


На работе на компе с другой конфигурацией (winxp sp3 x86) стоит также последний firefox. Проблема та же самая.


В других браузерах все работает нормально.


Антивирусы на компах разные - drweb и symantec. после полной проверки с последними базами - вирусов не обнаружено.


В общем, я не знаю, как и почему мои браузеры переклинило. Может кто-то сталкивался?








style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-6667286237319125"
data-ad-slot="5736897066">

Комментариев нет:

Отправить комментарий