Ajout de moteurs de recherche depuis des pages Web

Firefox permet à du code JavaScript d'installer un plugin de moteur de recherche écrit au format OpenSearch ou Sherlock.

Note : Pour Firefox 2 et suivants, il est recommandé d'utiliser le format OpenSearch.

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);

URLmoteur est l'URL complète du fichier XML pour le plugin de recherche.

Note : Le support d'OpenSearch n'est disponible qu'à partir de Firefox 2.

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 (""), soit null.

Pour plus de détails sur Sherlock, consultez http://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("http://example.com/search-plugin.xml");
 } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
   // Firefox <= 1.5, Sherlock
   window.sidebar.addSearchEngine("http://example.com/search-plugin.src",
                                  "http://example.com/search-icon.png",
                                  "Search Plugin", "");
 } else {
   // No search engine support (IE 6, Opera, etc).
   alert("No search engine support");
 }
}

Étiquettes et contributeurs liés au document

Étiquettes : 
Dernière mise à jour par : Mgjbot,