the fly on the net 
Davide Bia

Davide si occupa principalmente di consulenza informatica ed assistenza tecnica per alcune aziende nella provincia di Verona.
Ha sempre coltivato la passione per la programmazione, e fin dal 1994 sviluppa siti web e librerie JavaScript.



the fly on the net » Anno 2007 » settembre » giovedì 13/09/2007

Aggiungi ai segnalibri/preferiti

 Scritto da Davide in Javascript & AJAX 13 settembre 2007 1 commento

Può essere interessante e utile fornire un link all’interno del proprio sito web in cui si propone di aggiungere la pagina nei segnalibri o nei favoriti di Internet Explorer.

Esistono notevoli differenze tra i vari browser per implementare questa funzione, che hanno favorito l’abuso di JavaScript e rendendo tali link completamente inaccessibili. Fortunatamente Opera ha proposto una soluzione semplice, basata su puro HTML.

Aggiungi ai segnalibri

Il segreto di questo link è l’attributo rel="sidebar" che indica al browser una relazione con i segnalibri. Recentemente è stato implementato anche in Firefox e negli altri software basati su Gecko. Internet Explorer e le versioni precedenti di Gecko (in particolare Mozilla Suite) ignorano completamente l’attributo e lo considerano un normale collegamento ipertestuale. Per risolvere non c’è altra soluzione che aggiungere un semplice JavaScript.

function addbookmark_click( )
{
if(self.external)
{
self.external.AddFavorite(this.href, this.title);
return false;
}
else if(self.sidebar)
{
self.sidebar.addPanel(this.title, this.href, "");
return false;
}
else return true;
}

function body_load( )
{
if(document.getElementById)
var link_addbookmark = document.getElementById("addbookmark");
else if(document.all)
var link_addbookmark = document.all["addbookmark"];

if(link_addbookmark)
link_addbookmark.onclick = addbookmark_click;
}

if(typeof self.addEventListener != "undefined")
self.addEventListener("load", body_load, false);
else if(typeof self.attachEvent != "undefined")
self.attachEvent("onload", body_load);

Il vantaggio di questa soluzione è di essere trasparente nei confronti di tutti gli User Agent che non supportano JavaScript, siano essi browser o lettori vocali.