2012-01-23 15 views
7

Pytam o to, ponieważ mam kilka linków, które działają jak przyciski, które wyciągają zawartość przez ajax, więc nie potrzebuję żadnego href na nich.Czy href jest wymagany w linkach?

(pytam to z punktu widzenia SEO)

Odpowiedz

7

Czy na odnośnikach wymagane jest href?

Tak. Zakotwiczenia bez atrybutów href nie są łączami.

Pytam bo mam to kilka linków, które działają jak przyciski, które należy wyciągnąć zawartość koryta ajax

Jeśli robisz to, zrób to dobrze. Użyj Unobtrusive JavaScript i pushState.

"Łącza", które działają tylko wtedy, gdy korzystasz z urządzenia wskazującego i mają włączone JS, nie są dobrymi łączami.

pytam to z punktu widzenia SEO

Wyszukiwarki nie będzie wykonywał swój JavaScript, więc pseudo-linki (które zależą od JS) to tylko czarne dziury nicości miarę są zaniepokojeni).

+2

Ouch - rodzaj ostrego, i wydaje się zbyt czarny i biały. –

1

Nie są one absolutnie konieczne, jednak powinieneś umieścić href="#/" jako href aby semantycznie poprawne. Bez atrybutu href="" zakotwiczenie prawdopodobnie zostanie przetworzone jako zakładka na stronie, szczególnie jeśli określony jest atrybut name="".

+1

Proponuję użyć '# /' jak przy użyciu tylko '#' przyczyny przeglądarka przeskakuje na górę strony –

+0

@MyHeadHurts Dzięki za rekomendację. Zmieniono moją odpowiedź. – Bojangles

+0

Proponuję link do czegoś bardziej użytecznego niż część strony, która nie istnieje. – Quentin

25

Zakładam, że przez "linki" rozumie się po prostu elementy a. Jeśli to prawda, wówczas:

nr Przynajmniej nie w HTML5 draft specification:

Jeśli element ma atrybut href, a następnie element reprezentuje zastępczy gdzie link mogłyby zostały umieszczone , jeśli to było istotne, .

Z HTML 4.01 specification:

Autorzy mogą również utworzyć pierwiastek, który określa żadnych kotwic, to znaczy, że nie określić href, nazwę lub ID. Wartości dla tych atrybutów można później ustawić za pomocą skryptów.

+1

To nie pasuje do sytuacji OP. OP nie chce mieć łącza zastępczego, chce przycisku. (Och, a 'a @ href' nie było wymagane we wcześniejszych wersjach HTML.) –

+1

To prawda. Jednak odpowiedź na pytanie "Czy href jest wymagany w linkach" to "nie". Pytanie o semantykę używania takich linków jest zupełnie inne. Kod PO przejdzie test sprawdzania poprawności bez atrybutów "href". –

+0

Cóż, nie. Technicznie nie jest to nawet link, jeśli nie zawiera atrybutu "href". –

2

nie, nie jest. Jednak linki mogą renderować różne (podkreślenie i kolor), jeśli href nie jest ustawiony.

2

Nie jestem pewien, ale jakiś czas temu miałem problem z "a" bez href ... kliknięcia po prostu nie działały. Ale może to była tylko stara przeglądarka.

4

Jeśli masz linki, które działają jak przyciski, prawdopodobnie powinieneś użyć elementu <button>.

2

W zależności od specyfikacji, a także po uruchomieniu href przeglądarki mogą zaimplementować różne domyślne style (np. Niezmienianie kursora na wskaźnik). Najczęstsze podejścia do dodawania obojętne HREF są

href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page 

href="javascript:void()" // has the advantage of having no annoying default behaviour 
+0

Często, ale okropnie. Nie graj w gnoju tylko dlatego, że robi milion much. – Quentin

0

Chociaż nie jest to wymagane, należy dodać href tagów kotwicy, ponieważ dobrze bez href nie są one naprawdę zakotwiczenia tagi.

Możesz dodać "#" do linku i dodać onClick = "return false;" aby zapobiec zdarzeniu kliknięcia. Jeśli używasz JQuery, możesz dodać event.preventDefault() do obsługi kliknięcia dla twoich linków.

Z punktu widzenia SEO, pójdę z użyciem tytuły tagów kotwicznych (uniknąć ve właściwość text-indent).

Powiązane problemy