Защо - href - javascript

Сега е общоизвестно, че не трябва да използвате псевдо протокола javascript: т.е.

Защо е лошо и кои аналози трябва да се използват?

Причина 1. Идеологическа причина

Javascript псевдо протокол: оттеглено за дълго време. Той се поддържа от браузърите, но не е описан в уеб стандартите.

От друга страна обаче, за използването на javascript: изградени са редица интересни технологии, например маркери.

Причина 2. Без деградация

Ако е възможно, по-добре е да направите тази опция:

Тези посетители, които имат деактивиран javascript, ще последват връзката към /openComment.php?id=123 и пак ще видят нещо полезно там.

Търсачките също ще индексират /openCommend.php?id=123.

Когато кликнете върху такава връзка с деактивиран javascript, човекът ще бъде хвърлен в горната част на страницата. Не яжте гуд. Но трябва да има някакъв href. Затова е по-добре да направите това:

Страницата /nojs.html може например да съдържа заявка за активиране на javascript.

Причина 3. Недостатъци на интеграцията

Свойството onclick е много по-удобно за управление от javascript. Той определя манипулатора на събитията. Можете да направите няколко манипулатора, да присвоите функция, а не низ като в href и т.н.

И javascript: псевдо протоколът не е събитие. Той отпада от общата схема и следователно е неудобен.

P.S Строго погледнато, и onclick вътре в HTML не трябва да се посочват. Кодът за маркиране и javascript трябва да вървят отделно. Но понякога onclick е удобен, така че защо не.

Причина 4. Отрицателна използваемост

Много често те използват скрипт в линк, когато кликват върху снимка или описание на продукт.

Положително приложение?

Ако все пак искате нищо да не се случи, когато посетител с деактивиран javascript кликне върху връзката:

Може ли това да бъде полезно в реалния живот?

Самият аз не го използвам, но не знам друг начин да направя връзката неработеща за посетители без JS.

коренно различен от

Положителната употреба е, че такъв href просто не прави нищо с js деактивиран. И в същото време не хвърля кликер в горната част на страницата като .

И така, ако: "javascript: //"?

Най-доброто е asdfasdf
И нищо няма да се случи, няма да го хвърли никъде и ще работи само с активиран JS

Можете също да използвате следните методи: print ();

за разлика от #blabla
удобно е, че в лентата на състоянието можете да видите не http: //. пълен път на страницата. #blabla и краткият етикет на javascript: blablabla
това е една употреба, ако js се свързва и създава

Още по-удобно е при четене на кода, въпреки че кодът се оказва много пъргав. където се използва подобен onclick, се оказва по-лесно да се разбере кода, отколкото там, където събитията са закачени в дълбочината на кода, което усложнява изследването.

но нямам нужда от никой там . да се мушкам, за да анализирам/прочета моя код! къде и какво се крие и как всичко е подредено, това е моя работа и аз самият знам къде какво! Основното е, че работи . това е добре!

идиот. тогава дизайнерските модели са излишни. и спагети кодът след това управлява вашия начин.

да пиша правилно:
javascript: void (0)

Прочети го. не разбра нищо. какви са разликите.

Ще отида да го прочета отново.

Обяснете на зелено, ако javascript е деактивиран, тогава връзката трябва да отиде на друга страница и ако е активирана, трябва да се стартира заявка "AJAX" и да се заредят нови данни.
Как най-добре да го приложим?

Чели ли сте статията? Има и пример -

В href поставяте връзка към страницата с изключен javascript, а в onclick - функция, която извиква вашата заявка.

Понякога пиша href = "javascript:;"

href = "javascript:;"
и сега стартирайте това чудо на IE7

е, почти винаги пиша така и работи навсякъде, добре, поне за мен във всички браузъри.

Ако не бъркам нищо,. в IE все още причинява артефакти, свързани с прехода в състояние „чакане за зареждане“ - по-специално убива gif-анимация, динамични ефекти със снимки (преобръщане) и т.н. На Винград имаше няколко такива, където хората наистина стъпиха на тази гребла. Така че не бих препоръчал да правите това на неработещи връзки без JS, по-добре е, IMHO, нещо като

Или закачете href-s динамично, като заредите DOM.