Il classico sistema aggiungi a preferiti in Javascript, che dalla notte dei tempi utilizziamo sui nostri siti Web, è compatibile solo con Internet Explorer:
window.external.AddFavorite(indirizzo, titolo)e l'utilizzo sempre più diffuso di browser differenti da MSIE, come Firefox ed Opera ad esempio, fanno sorgere la necessità di rendere cross browser non solo gli script di una certa mole, ma anche le utility come appunto la funzione aggiungi a preferiti.
Segue il codice della funzione personalizzata Preferiti(), creata appunto per rendere cross browser questa nota utility delle pagine Web:
function Preferiti()
{
var title = document.title;
var url = document.location.href;
if (window.sidebar) // Mozilla Firefox
{
window.sidebar.addPanel(title, url, "");
}
else if (window.external) // Internet Explorer
{
window.external.AddFavorite(url, title);
}
else if (window.opera && window.print) // Opera
{
var elem = document.createElement('a');
elem.setAttribute('href', url);
elem.setAttribute('title', title);
elem.setAttribute('rel', 'sidebar');
elem.click();
}
}
Aggiungere questo codice nel proprio file Javascript esterno, richiamandolo dall'header delle pagine Web del proprio sito:
<script type="text/javascript" src="preferiti.js"></script>oppure assegnando al file il nome che si desidera.
In sostanza, per MSIE lo script resta uguale, mentre per FF utilizziamo la forma:
window.sidebar.addPanel(titolo, indirizzo, "")quindi prima il titolo e poi l'indirizzo, contrariamente ad MSIE.
Per Opera è necessario creare dinamicamente il link di aggiunta ai bookmark.
Richiamiamo lo script sulle nostre pagine Web come segue:
<a href="javascript:Preferiti()">Aggiungi ai preferiti</a>semplicemente, quindi, specificando la funzione Preferiti() all'evento click su un link.
| Corso AJAX Applicazioni Web 2.0 basate su AJAX con ASP, ASP.NET e PHP. A partire da 39 €. | |
| Corso CSS Web Design ed Accessibilità secondo il W3C con CSS ed XHTML. A partire da 29 €. | |
| Corso Javascript Guida completa allo scripting lato client. A partire da 39 €. |