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 :

innerHTML pour les object dans IE


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut innerHTML pour les object dans IE
    Bonjour à tous,

    J'ai un petit soucis, je vous plante le décor.
    J'ai une page qui affiche différent bouton. Lorsque l'on clique dessus, cela lance une fonction javascript qui me remplie un div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function addLecteurVideo(varVideoSrc) {
    	var varLecteur = '<br><object id="myLecteur" type="application/x-shockwave-flash" data="http://flv-player.net/medias/player_flv_maxi.swf" width="640" height="480">';
    	varLecteur += '<param name="movie" value="http://flv-player.net/medias/player_flv_maxi.swf" />';
    	varLecteur += '<param name="allowFullScreen" value="true" />';
    	varLecteur += '<param name="FlashVars" value="flv=';
    	varLecteur += '<?php echo $racine . "/Galerie/Videos/"; ?>'+varVideoSrc;
    	varLecteur += '&amp;title=Crevette&amp;width=640&amp;height=480&amp;autoplay=1&amp;autoload=1&amp;showstop=1&amp;showvolume=1&amp;showtime=1&amp;showplayer=always&amp;showfullscreen=1&amp;buffer=10&amp;buffermessage=Chargement _n_&amp;ondoubleclick=fullscreen&amp;showiconplay=1&amp;iconplaybgalpha=50&amp;showmouse=autohide&amp;showtitleandstartimage=1" />';
    	varLecteur += '</object>';
     
     
    	document.getElementById("cadreCenterImage").innerHTML = varLecteur;
    }
    Pour ce lecteur, le fichier flv se passe en argument dans les paramètres. Du coup, pour chaque bouton, j'appelle cette méthode avec l'argument approprié pour afficher la vidéo voulu.
    Sous FireFox, aucun problème, par contre, sous IE8 j'ai un gros soucis : la vidéo ne s'affiche pas

    J'ai comme l'impression que IE n'interprète pas le code <object> que je lui donne. Je vois le lecteur, mais vide, comme si il n'avait pas charger la vidéo.
    J'ai esseyé avec différent lecteur, de différente façon, toujours pareil.
    Si quelqu'un a une idée pour régler mon problème...

    Par avance merci.


    EDIT: "cadreCenterImage" est un div (je sais qu'il existe un bug avec innerHTML et IE quand le innerHTML n'est pas sur un div).

  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
    innerHTML sux !
    en plus pour des balises object !
    passe par la création Dynamique au moyen du DOM
    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
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    innerHTML sux !
    en plus pour des balises object !
    passe par la création Dynamique au moyen du DOM
    Merci pour ton intervention.

    J'ai oublié de précisé que j'étais novice en javascript. Je n'ai jamais entendu parler du DOM !!!
    Est ce que ça reste du javascript ?
    En faisant une recherche vite fais, je trouve pas grand chose à ce sujet.

    Pourrais tu me donner une piste du comment il faudrait faire, je chercherais à implémenter tout ça sans problème.

    Par avance merci.

  4. #4
    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
    fais une recherche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.createElement('object')
    sinon :
    http://www.developpez.net/forums/d53...ynamique-form/
    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 !

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Je connaissais absolument pas, en tout cas je note pour mes futurs dev : innerHTML c'est le mal.

    Cependant
    ça marche pas... le pire, c'est que ça marche plus sur FF aussi.
    Mon lecteur apparait bien, les paramètres sont correctes, le fichier flv en paramètre est correcte, pourtant.... voici 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
     
    	var mondiv = document.createElement("div");
    	var monLecteur = document.createElement("object");
    	monLecteur.setAttribute("id","myLecteur");
    	monLecteur.setAttribute("type","application/x-shockwave-flash");
    	monLecteur.setAttribute("data","http://flv-player.net/medias/player_flv_maxi.swf");
    	monLecteur.setAttribute("width","640");
    	monLecteur.setAttribute("height","480");
     
    	var monLecteurParam1 = document.createElement("param");
    	monLecteurParam1.setAttribute("name","movie");
    	monLecteurParam1.setAttribute("value","http://flv-player.net/medias/player_flv_maxi.swf");
     
    	var monLecteurParam2 = document.createElement("param");
    	monLecteurParam2.setAttribute("name","allowFullScreen");
    	monLecteurParam2.setAttribute("value","true");
     
    	var monLecteurParam3 = document.createElement("param");
    	monLecteurParam3.setAttribute("name","FlashVars");
    	monLecteurParam3.setAttribute("value",'flv="<?php echo $racine . "/Galerie/Videos/"; ?>'+varVideoSrc+'&amp;title=Crevette&amp;width=640&amp;height=480&amp;autoplay=1&amp;autoload=1&amp;showstop=1&amp;showvolume=1&amp;showtime=1&amp;showplayer=always&amp;showfullscreen=1&amp;buffer=10&amp;buffermessage=Chargement _n_&amp;ondoubleclick=fullscreen&amp;showiconplay=1&amp;iconplaybgalpha=50&amp;showmouse=autohide&amp;showtitleandstartimage=1"');
     
     
    	monLecteur.appendChild(monLecteurParam1);
    	monLecteur.appendChild(monLecteurParam2);
    	monLecteur.appendChild(monLecteurParam3);
    	mondiv.appendChild(monLecteur);
     
    	document.getElementById("cadreCenterImage").appendChild(mondiv);
    PS: ce code fonctionne pourtant puisque si j'appelle cette méthode plusieurs fois, je me retrouve avec plusieurs lecteur

  6. #6
    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
    "ça marche pas" est un symptome un peu vague ...

    je ne pense pas que tu ailles voir ton généraliste en lui disant juste "je suis malade"

    ...
    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 !

  7. #7
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    "ça marche pas" est un symptome un peu vague ...

    je ne pense pas que tu ailles voir ton généraliste en lui disant juste "je suis malade"

    ...
    Wai je suis d'accord avec toi... méhacoulpa, je craque.


    Lorsque j'utilise ce code, je remarque que mes noeuds sont bien ajouté dans mon html (les noeuds sont correctes).
    Pourtant à l'affichage :
    -sous IE : je n'ai rien (pas de lecteur apparant)
    -sous FF: j'ai le lecteur, mais les paramètres ne sont pas pris en compte (manque des boutons, manque la vidéo)


    J'ai du mal à fournir plus d'information puisqu'il ne se passe rien d'autre. J'ai juste l'impression que l'object n'est pas chargé.
    Il l'ajoute dans le html, mais l'interprète pas.

  8. #8
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    En utilisant le DOM

    J'ai simplifié tout ce système de paramètre, je me retrouve avec le minimum : le lien vers le flv

    Sous FF ça fonctionne : exactement pareil qu'avec innerHTML
    Sous IE mon n'object n'est pas charger : carré blanc (fond de mon div) lorsque je fais clique droit dessus j'ai le menu adobe avec : animation non chargée... (en gris non séléctionnable).

    En gros, DOM ou innerHTML, le résultat est le même, IE n'arrive pas a charger mon object.

    Je suis peut être partit dans une mauvaise direction, il existe peut etre une façon plus simple de faire ce que je souhaite.
    Dans tout les cas, je comprends pas pourquoi IE n'arrive pas à lire ma vidéo.

  9. #9
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Mazette, j'ai trouvé....

    Enfin je pense avoir une explication.

    C'est liée au faite que le swf (le lecteur) ne se trouve pas sur mon serveur.
    En effet, dans ce code, il utilise un swf localisé sur un autre site.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="movie" value="http://flv-player.net/medias/player_flv_maxi.swf" />
    J'ai diminué au maximum le code pour comprendre, j'ai donc utiliser un autre player que j'ai uploader en local et dont l'utilisation se fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="movie" value="player.swf" />
    Et la miracle, sous IE comme sous FF, ça fonctionne.

    Va savoir pourquoi à chaud (en utilisant DOM ou innerHTML) il n'arrive pas a recharger un lecteur qui se trouve sur un autre site...

    En tout cas, ça n'a pas été simple, et encore merci à SpaceFrog de m'avoir fait découvrir le DOM.

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

Discussions similaires

  1. [applet]utilser des infos pour les traiter dans une servlet
    Par jeromejanson dans le forum Applets
    Réponses: 5
    Dernier message: 07/03/2010, 23h22
  2. Réponses: 1
    Dernier message: 31/01/2007, 11h59
  3. Récupérer infos page html pour les insérer dans Outlook
    Par andromede88 dans le forum Windows
    Réponses: 4
    Dernier message: 21/09/2006, 14h21
  4. Réponses: 1
    Dernier message: 05/09/2006, 17h56
  5. Réponses: 2
    Dernier message: 21/05/2006, 14h02

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