Visit Mozilla.org

Ajout de moteurs de recherche depuis des pages Web

Un article de MDC.


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.

[modifier] 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.

[modifier] 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/.

[modifier] 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");
 }
}