Firefox permet à du code JavaScript d'installer un plugin de moteur de recherche écrit au format OpenSearch ou Sherlock.
Lorsque du code JavaScript tente d'installer un plugin de recherche, Firefox alerte l'utilisateur en lui demandant sa permission.
Installation de plugins OpenSearch
Pour installer un plugin OpenSearch, vous devez employer la méthode DOM window.external.AddSearchProvider()
. La syntaxe de cette méthode est :
window.external.AddSearchProvider(URLmoteur);
où URLmoteur est l'URL complète du fichier XML pour le plugin de recherche.
Installation de plugins Sherlock
Pour installer un plugin Sherlock, vous devez appeler window.sidebar.addSearchEngine()
, dont la syntaxe est :
window.sidebar.addSearchEngine(URLmoteur, URLicone, nomProposé, catégorieProposée);
- Le paramètre
URLmoteur
est l'URL du plugin Sherlock (un fichier «.src
») à installer. -
URLicone
est l'URL d'une icône à associer au plugin. - Le paramètre
nomProposé
n'est utilisé que lorsque Firefox demande à l'utilisateur la permission d'installer le plugin, pour pouvoir afficher un message tel que « Voulez-vous installer nomProposé depuis URLmoteur ? ». - Le paramètre
catégorieProposée
n'est pas utilisé. Utilisez soit une chaîne vide (""
), soitnull
.
Pour plus de détails sur Sherlock, consultez https://developer.apple.com/macosx/sherlock/.
Détection des capacités de gestion de moteurs de recherche du navigateur
Comme le système d'ajout des moteurs de recherche a changé lors du passage de Firefox 1.5 à Firefox 2, et que Firefox 1.5 ne supporte pas les fichiers de description OpenSearch, les webmestres qui veulent aussi permettre l'ajout des moteurs sur les version antérieures (c'est-à-dire, qui fonctionneront dans Firefox 1.5, Firefox 2.0 ou IE 7) devront gérer à la fois les formats Sherlock et OpenSearch et détecter les capacités du navigateur à traiter soit l'un soit l'autre. Les lignes ci-dessous en sont un exemple :
function installSearchEngine() { if (window.external && ("AddSearchProvider" in window.external)) { // Firefox 2 and IE 7, OpenSearch window.external.AddSearchProvider("https://example.com/search-plugin.xml"); } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) { // Firefox <= 1.5, Sherlock window.sidebar.addSearchEngine("https://example.com/search-plugin.src", "https://example.com/search-icon.png", "Search Plugin", ""); } else { // No search engine support (IE 6, Opera, etc). alert("No search engine support"); } }