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 :

acceder au param name="movie"


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Par défaut acceder au param name="movie"
    Bonjour,
    Je voudrais changer l'adresse d'un fichier .swf grace à javascript dans une balise
    object.
    Est il possible d'acceder à la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="movie" value="aChanger.swf">
    ?
    je l'ai fait pour firefox avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flashMovie.setAttribute("src","aChanger.swf")
    mais j'ai du mal avec IE.
    Je précise que le code contient du php, donc remplacer le contenu du div avec .innerHTML n'est pas une option.
    Merci

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Je précise que le code contient du php, donc remplacer le contenu du div avec .innerHTML n'est pas une option.
    ha ? en quoi php empèche-t-il cela ?
    J'éviterais en effet de passer par innerHTML masi la raison invoquée n'est a mon avis pas la bonne.
    Mieux vaut passer par le DOM pour la prise en compte par celui ci des elements modifiés.


    sinon en js passe par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('movie')
    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
    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
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par learndotnet Voir le message
    je l'ai fait pour firefox avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flashMovie.setAttribute("src","aChanger.swf")
    mais j'ai du mal avec IE.
    Il ne faut pas ajouter un attribut src mais modifier l'attribut value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flashMovie.value = 'aChanger.swf';
    en considérant bien sûr que flashMovie correspond à la bonne balise param.
    Je précise que le code contient du php, donc remplacer le contenu du div avec .innerHTML n'est pas une option.
    Depuis quand une page affichée peut-elle contenir du PHP ???
    Une fois affiché, ton code n'est sensé contenir que du HTML et c'est tant mieux car JavaScript ne sait pas interpréter le PHP.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Par défaut
    Merci pour vos réponses.
    Je crois que je n'ai pas été assez précis.
    Le code est extrait d'un site e-commerce dont les images des produits doivent être remplacées par des fichiers swf.
    Voila le code de l'insertion du fichier swf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" id="flashed" width="256" height="256" style="z-index:1" >
        <param name="movie" value="<?php echo $this->getSkinUrl('flash/'.$_product->getSku().'.swf'); ?>">
        <param name="quality" value="high">
        <param name="wmode" value="transparent" />
        <param name="flashvars" value="sku='<?php echo $_product->getSku(); ?>'">
        <embed src="<?php echo $this->getSkinUrl('flash/'.$_product->getSku().'.swf'); ?>"id="flashed" swliveconnect="true" width="256" height="256" quality="high" name="flashed" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" FlashVars="sku='<?php echo $_product->getSku(); ?>'" ></embed>
        </object>
    Pour Firefox, c'est avec la balise <embed et donc l'attribut src, mais pour IE, c'est la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="movie" value ="...code php...">
    Si je remplace le php par du html, je perd l'aspect dynamique et si j'essaie de remplacer le contenu de la div où est inséré le code ci-dessus par qqchose contenant du php, (avec innerHTML), ça ne marche pas.

    J'ai éssayé, suite à vos réponses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var obj = document.getElementsByName('movie')[0];
        obj.value= "<?php echo $this->getSkinUrl('flash/ref'.$ref.'.swf'); ?>"
    Mais ça ne marche pas.
    Je me trompe quelque part ?
    Merci

  5. #5
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    essaye déja avec un value en dur ...
    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 !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Par défaut
    Value en dur ou pas, ça ne marche toujours pas pour IE.
    Voila comment j'appelle la fonction :

    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
    <script language="javascript">
        function changer()
        {
            if ( navigator.appName == "Microsoft Internet Explorer" )
            {
                var obj = document.getElementsByName('movie')[0];
                obj.value= "flash/ref2.swf";
            }
            else
            {
                var emb=document.embeds["flashed"];
                emb.setAttribute("src","<?php echo $this->getSkinUrl('flash/ref'.$ref.'.swf'); ?>");
            }
    }
    </script>
    <a href="#" onclick="changer()">Changer</a>
    Serait-ce que le code pour Firefox relance le flash, mais pas celui pour IE ?
    Merci

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