IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Détecter la présence d'un plugin de recherche


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Détecter la présence d'un plugin de recherche
    Bonjour,

    j'ai créer un plugin de recherche intégrer au navigateur sur ce modèle : https://developer.mozilla.org/fr/Cr%...h_pour_Firefox

    Tout fonctionne, c'est cool !

    Maintenant, j'aimerai détecter la présence de ce plugin (pour ne pas le reproposer à l'utilisateur).
    Dans le script js, l'installation du plugin utilise 2 méthodes en fonction du navigateur :
    - window.external.AddSearchProvider()
    - window.sidebar.addSearchEngine()
    J'ai cherché de ce coté pour la détection mais je n'ai rien trouvé...

    Une idée pour cette détection ? C'est possible à votre avis ?
    Merci d'avance pour votre aide.

    @+

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Par la détection de l'existence de la méthode ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.external.AddSearchProvider || window.sidebar.addSearchEngine)

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    mais nan !

    pour détecter si le plugin est déjà installé sur le navigateur !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut

    Ben précisément... si le plugin est installé, ton navigateur reconnaitra une des méthodes lors du test et renverra true, sinon, il renverra false...
    Ou alors, j'ai vraiment trop bu !

  5. #5
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ou alors, j'ai vraiment trop bu !
    je crois oui...

    j'ai trouvé ceci : window.external.IsSearchProviderInstalled(url);
    mais j'ai pas encore réussi à l'utiliser.
    Cette fonction est censé retourner
    0 : pas installé
    1 : installé
    2 : installé et par défaut

    ...

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Hum... donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.external.IsSearchProviderInstalled('http://www.developpez.net/'))
    renvoie bien 0 (testé sur la console Firebug), donc en représentation booléenne false !!!

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    De plus, je confirme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(window.external.IsSearchProviderInstalled('http://www.developpez.net/') && window.sidebar.addSearchEngine('http://www.developpez.net'))
    renvoie bien 0 (donc un false booléen) sur la console Firebug, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.external.IsSearchProviderInstalled('http://www.developpez.net/') || window.sidebar.addSearchEngine('http://www.developpez.net'))
    répond bien à la question :
    Maintenant, j'aimerai détecter la présence de ce plugin

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    sinon un test de creation d'objet avec le type mime du pluggin ou une instance de l'objet lié au pluggin

  9. #9
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Bovino : moi aussi j'obtiens 0, mais j'aimerais obtenir 1 ou 2 lorsque le plugin est installé ! As-tu réussi de ton coté ?

    Citation Envoyé par SpaceFrog Voir le message
    sinon un test de creation d'objet avec le type mime du pluggin ou une instance de l'objet lié au pluggin
    euh.... en clair ça ressemblerai à quoi ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Ben simplement comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <script>
    function TestPlugin(typeMime)
       var fakeObject;
     
       try {
         fakeObject = new ActiveXObject(typeMime);
       }
       catch (e) {
         // plugin manquant
    alert("Le plugin n'est pas installé");
       }
       if (fakeObject){
    	 	alert ("le plugin est installé");
     
    }
     
    </script>

  11. #11
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    ok SpaceFrog mais... comment je fait pour connaître le type MIME de mon plugin ?

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    ben recherche une liste de type Mimes ...
    c'est quoi ton pluggin ?

  13. #13
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    J'ai bien évidemment fait une recherche du type MIME mais c'est un plugin perso de recherche rapide intégré au navigateur Firefox ou IE7...
    comme expliquer dans le premier post de ce topic

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    et comment instancies tu une recherche avec ton plugin ?

  15. #15
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    je suis pas sur de comprendre...

    la fonction js pour l'installation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function installSearchEngine() {
    	if (window.external && ("AddSearchProvider" in window.external)) {
    		// Firefox 2 and IE 7, OpenSearch
    		window.external.AddSearchProvider("http://localhost/search-plugin/engine.xml");
    	} else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
    		// Firefox <= 1.5, Sherlock
    		window.sidebar.addSearchEngine(
    			"http://localhost/search-plugin/engine.src",
    			"http://localhost/search-plugin/algo.png",
    			"Mon plugin",
    			"" );
    	} else {
    		alert("Désolé mais votre navigateur ne supporte pas ce plugin de recherche rapide.");
    	}
    }
    l'XML opensearch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8"?>
    <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                           xmlns:moz="http://www.mozilla.org/2006/browser/search/">
      <ShortName>Mon plugin</ShortName>
      <Description>Recherche rapide</Description>
      <InputEncoding>UTF-8</InputEncoding>
      <Image width="16" height="16" type="image/x-icon">http://localhost/search-plugin/icone.ico</Image>
      <Url type="text/html" method="GET" template="http://localhost/">
        <Param name="q" value="{searchTerms}"/>
        <Param name="referer" value="searchEngine"/>
      </Url>
      <moz:SearchForm>http://localhost/</moz:SearchForm> 
    </OpenSearchDescription>

  16. #16
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    je viens de me rendre compte que sous IE7, j'arrive la détection du plugin...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alert(window.external.IsSearchProviderInstalled('http://www.mondomaine.com'));
    // affiche 1 ou 2
    J'ai donc cru que window.external.IsSearchProviderInstalled() n'était pas implémenté sous Firefox. Alors j'ai testé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alert( (window.external && ("IsSearchProviderInstalled" in window.external)) );
    // affiche true
    Bizarrement, la méthode semble bien intégrée... mais avec mon utilisation elle retourne toujours 0 sous Firefox 3.

    Alors existe-t-il une méthode compatible Firefox 3 ?

  17. #17
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    SpaceFrog : ma réponse n'est pas suffisamment précise ?

    Quelqu'un aurait-il des infos au sujet de la méthode IsSearchProviderInstalled() par rapport à Firefox ?

    Existe-t-il une équivalence ?

Discussions similaires

  1. [EMF, plugin, XMI] recherche explications
    Par Hug0_76 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 07/12/2006, 20h02
  2. Détecter la présence d'une fenêtre
    Par Invité dans le forum VBScript
    Réponses: 3
    Dernier message: 16/11/2006, 10h24
  3. [plugin][eclipse]recherche tutorial
    Par whilecoyote dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/12/2005, 16h10
  4. [scrollbar] détecter la présence dun scrollbar
    Par pmartin8 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/12/2005, 17h11
  5. Détecter la présence de MSDE
    Par Drahu dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/03/2004, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo