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 :

detection plugin et redirection


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut detection plugin et redirection
    Salut à tous,

    j'ai lancé un topic dans le forum flash, mais il concerne du code Javascript.

    Je n'arrive pas à comprendre un bug que vit IE et pas FF. Je veux détecter la présence ou non du plugin Flash : si la version n'est pas suffisante l'internaute est rerouté automatiquement sans flash.
    FF agit très bien dans les 2 cas, mais IE reroute vers la page sans flash même si le plugin est là... ennuyeux, hein

    Le Kit que Adobe/Macromedia ont fait ne permet pas de réorienter le navigateur, mais plutot de mettre une jolie image pour dire qu'il faut télécharger le plugin. Or c'est pas ça que je veux.

    Je replace ici le code que j'ai trouvé ici et qui marche sur le site de yugop utilise et marche bien... allez savoir pourquoi.

    Merci de me donner un coup de main
    Bye

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    function lanceur_redirection(fichier, nom_du_fichier,largeur, hauteur, couleur, url_sans_flash){
     
    var MM_contentVersion = 6;
    var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ?
    			navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 
    			0;
     
    if ( plugin ) {
    		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
    	    for (var i = 0; i < words.length; ++i)
    	    {
    		if (isNaN(parseInt(words[i])))
    		continue;
    		var MM_PluginVersion = words[i];
    	    }
    	var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
    }
    /**/
    else if (
    		navigator.userAgent
    	 && navigator.userAgent.indexOf("MSIE")>=0
    	 && (navigator.appVersion.indexOf("Win") != -1)
    		){
     
    	document.write('<SCR' + 'IPT LANGUAGE=VBScript\>\n'); //FS hide this from IE4.5 Mac by splitting the tag 
    	document.write('on error resume next\n'); 
    	document.write('MM_FlashCanPlay=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion )))\n'); 
    	document.write('</SCR' + 'IPT\>\n');
     
    }
     
    if ( MM_FlashCanPlay ) {
     
    	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+largeur+'" height="'+hauteur+'" id="'+nom_du_fichier+'" align="middle">\n');
    document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
    document.write('<param name="movie" value="'+fichier+'" />\n');
    document.write('<param name="quality" value="high" /><param name="bgcolor" value="'+couleur+'" />\n');
    document.write('<embed src="'+fichier+'" quality="high" bgcolor="'+couleur+'" width="'+largeur+'" height="'+hauteur+'" name="'+nom_du_fichier+'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n');
    document.write('</embed>');
    document.write('</object>\n');
     
    } else{ //  REDIRECTION
    	window.location.replace(url_sans_flash);
    }
     
    }

  2. #2
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    regarde plutot dasn la FAQ comment ajouter un script dynamiquement ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Ca y est, j'ai trouvé!!!

    Le code est assez complexe parce qu'il contient du VBScript (moi, konnai pas).

    Alors je vous fourni le code que j'ai puisé ici. C'est très bien expliqué, j'ai adapté ça à mon cas. Je vous fournis le code

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <SCRIPT LANGUAGE="Javascript">
    <!--
    var flashinstalled = 0;
    var flashversion = 0;
    MSDetect = "false";
    if (navigator.plugins && navigator.plugins.length)
    {
    	x = navigator.plugins["Shockwave Flash"];
    	if (x)
    	{
    		flashinstalled = 2;
    		if (x.description)
    		{
    			y = x.description;
    			flashversion = y.charAt(y.indexOf('.')-1);
    		}
    	}
    	else
    		flashinstalled = 1;
    	if (navigator.plugins["Shockwave Flash 2.0"])
    	{
    		flashinstalled = 2;
    		flashversion = 2;
    	}
    }
    else if (navigator.mimeTypes && navigator.mimeTypes.length)
    {
    	x = navigator.mimeTypes['application/x-shockwave-flash'];
    	if (x && x.enabledPlugin)
    		flashinstalled = 2;
    	else
    		flashinstalled = 1;
    }
    else
    	MSDetect = "true";
    // -->
    </SCRIPT>
    Et là la partie VBScript qu'utilise IE, pcqu'il n'interprête pas le code précédent:
    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 LANGUAGE="VBScript">
    on error resume next
     
    If MSDetect = "true" Then
    	For i = 2 to 9
    		If Not(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & i))) Then
     
    		Else
    			flashinstalled = 2
    			flashversion = i
    		End If
    	Next
    	If flashinstalled = 0 Then
    		flashinstalled = 1
    	End If
    End If
    </SCRIPT>
    Ensuite j'utilise le résultat et je vérifie que la version flash de l'internaute est supérieure à Flash Player 6.
    - Si c'est bon, l'anim flash est lancée avec la fonction lanceur_anim que j'ai créé pour éviter l'ActiveX (cf plus loin)
    - Si c'est pas le cas, le navigateur va sur 1 autre page.
    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
     
    <script language="javascript" type="text/javascript">
    <!--
     
    if (flashinstalled == 2) {
    	if (flashversion >=6) {
    		lanceur_anim('diaporama_elastique.swf', 400, 100, '#FFF');
    	} else {
    		window.location.replace("autre_page.php");
    	}
    }
    else if (flashinstalled == 1) window.location.replace("gallerie.php");
    else document.write("I can't find out if you have Flash installed.");
    // -->
    </script>
    Enfin la fonction qui lance l'anim correctement dans IE sans les pbs de l'ActiveX qui oblige à l'internaute de cliquer 2 fois sur l'animation au lieu d'une.
    Le principe : l'anim est lancée par javascript, c'est à dire après que l'activeX de IE ait fait le controle de la page. ainsi ActiveX ne la bloque pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function lanceur_anim(fichier, largeur, hauteur, couleur) {
    document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+largeur+'" height="'+hauteur+'" id="truk" align="middle">\n');
    document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
    document.write('<param name="movie" value="'+fichier+'" />\n');
    document.write('<param name="quality" value="high" /><param name="bgcolor" value="'+couleur+'" />\n');
    document.write('<embed src="'+fichier+'" quality="high" bgcolor="'+couleur+'" width="'+largeur+'" height="'+hauteur+'" name="truk" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n');
    document.write('</embed>');
    document.write('</object>\n');
    }
    Bonne utilisation !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Detection Navigateur et redirection
    Par jeromelabbe0649 dans le forum Langage
    Réponses: 5
    Dernier message: 25/01/2012, 23h35
  2. Detection plugin flash
    Par Alain15 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/08/2006, 11h39
  3. detection plugin flash
    Par freija dans le forum Flash
    Réponses: 6
    Dernier message: 03/07/2006, 11h38
  4. [v3.0] probleme detection plugins
    Par jcarre dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/07/2004, 15h15

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