Невалиден код: Какво означава href = "#"?

Когато видите href = "#" в код на живо на уеб страница, това означава, че човекът, който е написал страницата, е направил грешка. Никога не трябва да виждате href = "#" в действителния изходен код на уеб страница, тъй като # сам по себе си всъщност е невалиден и безсмислен.

Всеки път, когато прикачите JavaScript към връзка, независимо дали това е така или използвате ненатрапчив еквивалент, винаги трябва да имате предвид и онези, които по някаква причина нямат активиран JavaScript. Най- върнете невярно в края на горния ми пример предотвратява действително използването на href, ако JavaScript работи, но href все още ще бъде използван, ако по някаква причина JavaScript не се стартира. Следователно href трябва да съдържа действителна валидна стойност въз основа на мястото, където искате връзката да вземе хора, които нямат наличен JavaScript. Тъй като човекът, който е написал JavaScript за вас, не знае къде искате да бъдат отведени тези хора, той просто е добавил # в кода си, където трябва да замените истинския адрес.

instagram viewer

# Е валиден в href атрибут, при условие че не е единственият символ в стойността. Когато # е последвано от допълнителни символи, тези допълнителни символи са стойността на атрибут id на друго място в текущата уеб страница и страницата ще скочи, за да се покаже етикетът, съдържащ този идентификатор, възможно най-близо до горната част на браузъра Прозорецът. Например ще скочи до

Символът # не е валиден като последния символ на href, тъй като означава, че искате да прескочите до идентификатор в страницата, но стойността на идентификатора, към който да скочите, не е посочена. Действието, което браузърът трябва да предприеме в този случай, не е дефинирано, но повечето просто ще скочат обратно в началото на текущата страница.

И така, какво да направите, ако JavaScript, който искате да прикачите, е такъв, че няма алтернатива за тези без JavaScript? Е, в този случай не искате тези без JavaScript за да видите връзката изобщо, тъй като ако тя е видима за тях, някои от тях ще кликнат върху нея и нямате нищо, което искате да направи за тях и това просто ще бъде объркващо. Следователно решението е да се гарантира, че връзката е видима само за тези с активиран JavaScript, а начинът да направите това е да добавите връзката в уеб страницата с помощта на JavaScript.

Само където се добавя в уеб страницата с помощта на JavaScript, можете ли да сте сигурни, че всеки, който кликне върху връзката, ще го направи имат активиран JavaScript и tat, следователно кодът doSomething () ще работи и href = "#" ще бъде игнориран. Тогава и само тогава има ли смисъл каквото и да е, да оставите # в това място в кода, тъй като атрибутът href е необходим за да могат някои браузъри да приемат кода като валидна връзка и където знаете, че ще имат само хората, които виждат връзката JavaScript Разрешено е също така да знаете, че следователно никой никога няма да бъде отведен в действителност до мястото, на което сочи href, и така може да съдържа всичко изобщо, без това да има значение и така # е толкова добра стойност като всеки и със сигурност е по-добра от href = "javascript:" (което е конструкция, която никога не трябва да се използва, независимо дали нещо следва дебелото черво или не).