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 :

Créer objet flash avec le DOM


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Créer objet flash avec le DOM
    Bonjour,

    Après avoir lu sans arrêt que le innerHTML ou le document.write était à bannir, je me suis lancé dans la création d'objets via le DOM.
    Malheureusement, après avoir créé ma fonction, le bouton Flash ne s'affiche pas .

    Voici le code javascript :

    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
    function myButton() {
     
    	var objBut = document.createElement("object");
     
    	var paramMovie = document.createElement("param");
    	var paramQuality = document.createElement("param");
    	var paramFlashvars = document.createElement("param");
    	var paramScale = document.createElement("param");
    	var paramWmode = document.createElement("param");
     
    	paramMovie.setAttribute("name","movie");
    	paramMovie.setAttribute("value","flash/button.swf");
     
    	paramQuality.setAttribute("name","quality");
    	paramQuality.setAttribute("value" , "high");
     
    	paramFlashvars.setAttribute("name","flashvars");
    	paramFlashvars.setAttribute("value","custom_xml_url=button.xml&item_text=essai&item_url=_home.htm&button_id=1&isIE=false");
     
    	paramScale.setAttribute("name","scale");
    	paramScale.setAttribute("value","noScale");
     
    	paramWmode.setAttribute("name","wmode");
    	paramWmode.setAttribute("value","transparent");
     
    	objBut.appendChild(paramMovie);
    	objBut.appendChild(paramQuality);
    	objBut.appendChild(paramFlashvars);
    	objBut.appendChild(paramScale);
    	objBut.appendChild(paramWmode);
     
     
    	objBut.setAttribute("id","anim1");
    	objBut.setAttribute("codebase","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0");
    	objBut.setAttribute("width","240");
    	objBut.setAttribute("height","31");
    	objBut.setAttribute("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
    	objBut.setAttribute("type","application/x-shockwave-flash");
     
    	document.getElementById("but1").appendChild(objBut);
    }
    Et voici le code HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="menu" id="but1">
        <script type="text/javascript">
            myButton();
        </script>
    </div>
    J'ai trouvé une astuce sur un forum pour tromper IE en créant les attributs de la balise <object> après avoir injecté les balises <param> dans <object> (pour ne pas créer de balises <embed>)

    Après analyse, je n'arrive toujours pas à trouver mon erreur...

    Merci d'avance !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Autre information :

    J'utilise un template pour faire mon site car coté design je suis nul !

    Le bouton en question est généré par une fonction createObject dont le rendu est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <object id="anim1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="240" height="31" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" >
    	<param name="movie" value="flash/button.swf" /> 
    	<param name="quality" value="high" /> 
    	<param name="flashvars" value="custom_xml_url=button.xml&item_text=textButton&item_url=page.htm&button_id=3&isIE=true" /> 
    	<param name="scale" value="noScale" /> 
    	<param name="wmode" value="transparent" /> 
    	<embed name="anim"width="240" height="31" src="flash/button.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="custom_xml_url=button.xml&item_text=textButton&item_url=page.htm&button_id=3&isIE=false" scale="noScale" wmode="transparent" type="application/x-shockwave-flash"  >
    	</embed>
    </object>
    Donc voila l'erreur ne viendrai pas de ma fonction précédente, mais plutot qu'il aurait fallu que je créé également la balise <embed> via le DOM.
    Je souhaiterais supprimer la balise <embed> mais quand je le fait (cf post précédent) le bouton ne s'affiche plus...

    Si quelqu'un as une solution pour supprimer la balise <embed> et rajouter soit des <param/> soit des attributs de la balise <object> pour que cela fonctionne, je suis preneur !

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Et si tu utilisais des trucs qui marchent partout et on fait leurs preuves sur des centaines de milliers de sites ?

    http://code.google.com/p/swfobject/

Discussions similaires

  1. [8] Récupération valeur champs type file créer en flash avec PHP
    Par sooprano dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 21/04/2011, 13h06
  2. Modifier paramètre d'un objet flash avec Javascript
    Par ismuismu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/11/2009, 23h38
  3. Créer un objet dynamiquement avec JDI
    Par mcargnelli dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/09/2006, 14h18
  4. [FLASH 8] Comment créer un executable avec flash
    Par CR_Gio dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 06/05/2006, 21h03
  5. Réponses: 4
    Dernier message: 04/10/2005, 00h15

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