Corsi on-line

Rilevare link esterni con jQuery

In questo post vi proporrò qualche snippet (tratto da questo interessante articolo) basato sul framework Javascript jQuery per svolgere un’operazione che potrebbe ritornarvi utile nella realizzazione delle vostre Web applications, la rilevazione di link esterni; quello che faremo sarà in pratica effettuare una ricerca di tali collegamenti ipertestuali e associare ad essi una classe apposita, classe che chiameremo per comodità “external_link”.

Il primo metodo proposto è il seguente:

$('a').filter(function()
   {
      return this.hostname && this.hostname !== location.hostname;
   }).addClass("external_link");

Lo snippet non fa altro che controllare l’hostname corrente, se quello rilevato è differente (ed è quindi per definizione esterno) allora verrà adottata la classe “external_link”.

Il secondo metodo risulta essere invece leggermente più complesso a livello di codice sorgente, questo perché impiega per il suo funzionamento le espressioni regolari:

$('a').each(function()
 {
    var reg_exp = new RegExp('/' + window.location.host + '/');
    if (!reg_exp.test(this.href))
    {
      this.addClass("external_link")
    }
 });

In quest’ultimo caso il controllo viene effettuato tramite regular expressions, se il check restituisce esito negativo, e quindi l’host rilevato non è quello richiesto, allora l’esito sarà lo stesso rispetto a quello dello script precedente.

Post correlati
I più letti del mese
Tematiche