Niveau
..........
En rapport...

Detection

Nous allons traiter ici de la détection du plugin active-x sous firefox mais vous pouvez l'adapter a n'importe quel plugin.

La fonction

javascript
var xpi=null;
function detectActiveXPlugIn(auto) {
	var Found=false;
	/*Si ce n'est pas Firefox*/
	if (navigator.userAgent.indexOf('Firefox')==-1)
		return; /*on arrete la fonction*/
	/*on fait une boucle qui va lister les différents plugins installés*/
	for (i in navigator.plugins) {
		var nv=new Object;
		nv = navigator.plugins[i];
		try {
			/*on vérifi pour chaque extension si le type est celui que l'on recherche*/
			if (nv[0].type.toLowerCase()=="application/x-oleobject") {
				Found=true;
				break;
			}
		} 
		catch (ex) {
			Found=false;
		}
	}
	/*s'il n'est pas trouvé on enregistre le lien d'installation du plugin en fonction de la version du navigateur du visiteur*/
	if (!Found) {
		if (navigator.userAgent.indexOf('Firefox/2.0'))
			xpi = {'Mozilla Firefox 2.0 ActiveX Plug-in':'http://www.iol.ie/~locka/mozilla/mozactivex-ff-15.xpi'};
		else if (navigator.userAgent.indexOf('Firefox/1.5'))
			xpi = {'Mozilla Firefox 1.5 ActiveX Plug-in':'http://www.iol.ie/~locka/mozilla/mozactivex-ff-15.xpi'};
		else if (navigator.userAgent.indexOf('Firefox/1.0.7'))
			xpi = {'Mozilla Firefox 1.0.7 ActiveX Plug-in':'http://www.iol.ie/~locka/mozilla/mozactivex-ff-107.xpi'};
		else if (navigator.userAgent.indexOf('Firefox/1.0.6'))
			xpi = {'Mozilla Firefox 1.0.6 ActiveX Plug-in':'http://www.iol.ie/~locka/mozilla/mozactivex-ff-106.xpi'};
		else if (navigator.userAgent.indexOf('Firefox/1.0.4'))
			xpi = {'Mozilla Firefox 1.0.4 ActiveX Plug-in':'http://www.iol.ie/~locka/mozilla/mozactivex-ff-104.xpi'};
		else {
			xpi = false;
		}
		if (auto==true)
		InstallXPI();
	}
}
function InstallXPI() {
	if (xpi==false)
		alert("Attention, aucune version du plugin ne semble compatible avec votre navigateur");
	else
		InstallTrigger.install(xpi);
}

L'exemple de la fonction premet d'installer le plugin active X pour Firefox (qui permet notemment de piloter windows media player dans firefox).

Utilisation

- Lorsque vous appelez la fonction detectActiveXPlugIn il vous faut préciser si vous voulez lancer l'installation du plugin automatiquement ou pas en indiquant False ou True (ex : detectActiveXPlugIn(false) ).
- “application/x-oleobject” est le type d'objet sur lequel agit le plugin que vous rechercher (ici le plugin pour activeX), il faut indiquer le type exact de votre plugin.
- Vous devez ensuite remplir la variable “xpi” avec le liens d'instalation du plugin. Dans le cas d'active-x pour firefox 2.0 le lien d'installation est le suivant ”{'Mozilla Firefox 2.0 ActiveX Plug-in':'http://www.iol.ie/~locka/mozilla/mozactivex-ff-15.xpi'};”

Si vous avez préférez ne pas lancer l'installation du plugin automatiquement mais plutôt proposer un lien d'installation à vos visiteur. Il vous suffira de lancer la fonction “detectActiveXPlugIn(false)” dasn le onload puis de vérifier la valeur de la variable xpi, si celle si est différente de “null” alors il faut proposer le lien d'installation en appelant la fonction “InstallXPI()“

Adapter a vos besoins

Ici, la vérification est fait sur le type mais vous pouvez l'effectuer sur d'autre valeur.
Pour connaitre la liste des plugins disponible et des valeur que vous pouvez tester, je vous conseille d'installer Firebug (minimum 1.0 Beta).
Ensuite dans, dans l'onglet script, a droite vous cliquez sur “new watch expression” et vous ajouter “navigator.plugins” et le tour est joué…


14/12/2006 08:33 -

iDo –

-

iDo –