apro questo thread perchè sono sicuro che sarà di utilità a molti.
Se hai mai provato a validare un XHTML "stretto" - per intenderci quelli con questo DTD:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Ti sarai accorto che l'amato/odiato validatore (http://validator.w3.org) ti dice che NON esiste l'attributo "target".
Ma come - ti sarai detto? Assurdo vero? Eppure per ragioni varie il W3C ha deciso che i link non possono avere il target. Cosa vuol dire questo? Che se per aprire una pagina in un'altra tab usavi:
Ora NON puoi più! Eppure è così utile aprire le finestre in altro tab... mmh
Così ho cercato una soluzione e mi sono imbattuto in alcune discussioni. La più autorevole l'ho trovata su SitePointche tra l'altro propone il suo script.
Figo! :-) Bhè peccato che non va...
Così me ne sono uscito con la mia soluzione. Eccola:
1. Prima di tutto sostituisci tutti i target="_blank" con rel="external":
diventa ora
2. Poi esegui questo script (attenzione però richiede cha carichi prima il Framework JQuery):
Semplice ed indolore (e BREVE).
Se ti interessa come funziona ecco una sintesi:
Qui prendiamo tutti gli A che hanno all'interno dell'attributo "rel" ANCHE "external".
Perchè ho usato questo selettore (~=) invece che semplicemente $("a[rel=external]")?
Perchè se hai dei link come questo:
JQuery lo ignorerà in quanto non c'è una corrispondezza esatta (infatti contiene anche nofollow e me).
Il resto dello script non fa che aggiungerea tutti gli A selezionati - in modo dinamico - il caro vecchio attributo "target=_blank"
Fammi sapere se ti è stato utile o se hai domande
