2012-01-23 11 views
7

Lo sto chiedendo perché ho alcuni collegamenti che si comportano come pulsanti che estraggono contenuti tramite ajax, quindi non ho bisogno di alcun href su di essi.È richiesto href sui collegamenti?

(sto chiedendo questo dal punto di vista SEO)

risposta

7

È richiesto href sui collegamenti?

Sì. Le ancore senza attributi href non sono collegamenti.

sto chiedendo questo perché ho alcuni link che agiscono come i pulsanti che tirare fuori il contenuto attraverso ajax

Se stai facendo questo, allora farlo bene. Utilizzare Unobtrusive JavaScript e pushState.

"Collegamenti" che funzionano solo se si utilizza un dispositivo di puntamento e se JS è acceso non sono buoni collegamenti.

sto chiedendo questo dal punto di vista SEO

I motori di ricerca non verrà eseguito il tuo JavaScript, in modo che le pseudo-link (che dipendono da JS) sono fori appena neri del nulla, per quanto sono preoccupati).

+2

Ouch - una specie di aspro, e sembra troppo bianco e nero. –

1

Non sono assolutamente necessari, tuttavia si dovrebbe probabilmente mettere href="#/" come il href per renderlo semanticamente corretto. Senza un attributo href="", è probabile che l'ancoraggio venga analizzato come un segnalibro nella pagina, specialmente se è specificato l'attributo name="".

+1

ti suggerisco di usare '# /' esempio utilizzando solo un '' # cause il browser per saltare all'inizio della pagina –

+0

@ MyHeadHurts Grazie per la raccomandazione. Modificato la mia risposta. – Bojangles

+0

Ti suggerisco di collegare a qualcosa di più utile di una parte della pagina che non esiste. – Quentin

25

Suppongo che per "collegamenti" intendiate semplicemente gli elementi a. Se questo è vero, allora:

No. Almeno, non nel HTML5 draft specification:

Se l'elemento non ha l'attributo href, l'elemento rappresenta un segnaposto per cui sarebbe altrimenti stato collocato un collegamento , se fosse era stato rilevante.

Dal HTML 4.01 specification:

Gli autori possono anche creare un elemento A che specifica non ancore, vale a dire, che non specifica href, il nome o id. I valori per questi attributi possono essere impostati in un secondo momento tramite gli script.

+1

Questo non corrisponde alla situazione dell'OP. OP non vuole un link segnaposto, lei vuole un pulsante. (Oh, e 'a @ href' non era richiesto nelle precedenti versioni HTML.) –

+1

Questo è vero. Tuttavia, la risposta alla domanda "È richiesto href sui collegamenti" è "no". La domanda sulla semantica di come usare tali collegamenti è una domanda completamente diversa. Il codice OPs passerebbe un test di convalida senza attributi 'href'. –

+0

Bene, no. Tecnicamente, non è nemmeno un link se non contiene un attributo 'href'. –

2

no, non lo è. Ma i collegamenti possono essere diversi (sottolineatura e colore) se l'href non è impostato.

2

Non sono sicuro, ma qualche tempo fa ho avuto un problema con "a" senza href ... i clic non funzionavano. Ma forse era solo un vecchio browser.

4

Se si dispone di collegamenti che fungono da pulsanti, è probabile che sia stato utilizzato un elemento <button>.

2

In base alle specifiche, è anche possibile trovare i browser che implementano diversi stili predefiniti (ad esempio non cambiando il cursore sul puntatore) quando si esce da href. Gli approcci più comuni per l'aggiunta di HREF fittizie sono

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

Comune, ma terribile. Non giocare nel letame solo perché fa un milione di mosche. – Quentin

0

Mentre non è necessario, si dovrebbe aggiungere il href ai tag di ancoraggio, perché, bene senza un href non sono realmente ancorano tag.

È possibile aggiungere un '#' al collegamento e aggiungere un onClick = 'return false;' per prevenire l'evento click. Se si utilizza JQuery, è possibile aggiungere event.preventDefault() al gestore di clic per i collegamenti.

Dal punto di vista SEO, mi piacerebbe andare con l'utilizzo di titoli per i tag di ancoraggio (evitare la proprietà text-trattino-ve.)

Problemi correlati