|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre habitué
![]() Inscription : mai 2004 Messages : 383 ![]() |
Salut,
J'ai une div qui contient des éléments mais aussi du Javascript: Code :
Code :
WP.get('DIV_page').innerHTML = get('DIV_page').innerHTML ; Pour pouvoir le mettre dans la page principale à partir d'une iframe, le code javascript n'est pas exécuté et je me retrouve avec des: Citation:
Comment je peux faire ? merci, Vincent. |
|||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() |
Bonjour,
C'est normal, les script JS ne sont pas évalués lorsqu'ils sont insérés via innerHTML. Regarde dans la FAQ, un sujet traite ce genre de problème. Cordialement,
__________________
Vivez vos rêves !!! Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
|
|
|
00
|
|
|
#3 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 071 ![]() |
C'est de toute façon un erreur de conception à la base.
Tout le js nécessaire à la page devrait etre présent au chargment. Mais depuis l'evolution d'ajax on voit de plsu en plus ce genre de choses ... avec jQuery il est possible d'aller chercher un script sur le serveur sous forme de texte et de l'intégrer à la page .
__________________
Ma page 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 ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
10
|
|
|
#4 | |||||
|
Membre habitué
![]() Inscription : mai 2004 Messages : 383 ![]() |
Citation:
Code :
Code :
Par contre, cela ne marche d'avec Firefox (ni chrome ni IE) et de toute façon je reste avec l'erreur: Code :
Erreur*: JS_showDetails is not defined Je n'utilise pas Ajax. merci, Vincent. |
|||||
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Inscription : mai 2004 Messages : 383 ![]() |
J'ai cherché un peu plus en profondeur et j'ai ceci qui marche:
Code :
SCRIPT5009: « hello » est indéfini Vous savez pourquoi ? merci, Vincent. |
||
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : mai 2004 Messages : 383 ![]() |
C'est bon, IE n'aime pas ele.innerHTML il préfère le .text:
Code :
ele.text = document.getElementById("DIV_js").innerHTML ; |
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
![]() Ca ne marche pas parce que ton code est correct (imagine bien que le innerHTML d'un script, ça n'a pas beaucoup de sens...) mais parce que tu appelles une fonction déjà définie dans le document... Que cherches-tu à faire au juste ? Ceci dit, je pense que tu devrais essayer d'apprendre un peu les bases de JavaScript avant de l'utiliser, notamment la notion de portée du code dans le document.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#8 | |
|
Membre habitué
![]() Inscription : mai 2004 Messages : 383 ![]() |
Citation:
Ce code Javascript est généré en PHP, donc je ne peux pas insérer un .js Donc pour l'instant j'ai fait ça pour tester l'insertion dynamique de Javascript en javascript: http://boxfly.free.fr/tmp/innerjs.html Bon, ça marche avec tous les navigateurs et IE9 je l'ai vu fonctionné mais maintenant il ne veut plus faire l'alert() |
|
|
|
00
|
|
|
#9 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
Code :
Code html :
<p onClick="hello();">Cliquer pour alert()</p> étant donné que tu définis ta fonction "hello" dynamiquement (enfin, en théorie, quand tu le feras à partir de ton iframe, pour l'instant elle est définie à un moment obscure lors de la création de la page) il est normal que cette ligne n'attache aucune fonction à l’évènement onclick de ta balise <p>. (puisque la fonction hello n'existe probablement pas encore lorsque tu essayes de la rattacher. ) edit: enfin (document.getElementById("DIV_js"))[0] getElementById renvoit un objet et non une collection d'objet, la question est alors comment se fait-il que ton code fonctionne sur les autres navigateurs ? (à mon avis insertBefore recevant un élément ne lui appartenant pas (undefined) insert le nouvel objet en premier child par défaut sur la plupart des navigateurs) |
|||
|
|
00
|
|
|
#10 | |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 071 ![]() |
Citation:
Si le but est d'injecter du js dans une page qui ne t'appartient pas tu te heurtera à la SOP. Sinon le js devra être sur la page avant.
__________________
Ma page 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 ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
C'est vrai que lorsqu'on débute, c'est plus simple de créer 2 page html, plutôt que de n'en créer qu'une seule avec des modifications du dom suite à des requêtes ajax. Donc on peut bien concevoir qu'il utilise du javascript reçu dans sa page "enfant" pour la page parente. Mais la pratique "d'envoyer" du code d'une page à l'autre est discutable, une bonne pratique serait simplement de "l'utiliser". S'il veut ajouter un événement onclick sur la page "parente" : Code :
window.parent.document.getElementById('azdz').onclick = maFonction; |
|
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Inscription : mai 2004 Messages : 383 ![]() |
Je dis simplement que cet exemple:
http://boxfly.free.fr/tmp/innerjs.html marche avec TOUS les navigateurs mais pas avec IE et bizarrement IE l'a fait fonctionné mais qu'une seule fois ! Après c'est pas une question d'Ajax, d'iframe ou autre... Et puis il ne faut pas être anti-iframe, c'est beaucoup utilisé, même par les sites réputés modernes comme twitter: Code :
U.innerHTML='<iframe tabindex="-1" role="presentation" style="position:absolute;top:-9999px;" src="'+R+'"></iframe>' http://boxfly.free.fr/tmp/innerjs.html |
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
Oui, une bonne partie des sites connus utilises des iframes, mais pas en tant que tel. Ils les utilisent quasi uniquement pour palier à des problèmes, un peu comme des hacks. Les 2 cas le plus courant sont : - poster un formulaire dynamiquement sans raffraichir la page lorsque l'ajax ne le permet pas. (ex: les input de type "file" ou bien pour le cross-domain.) - gérer l'historique pour un site ajax. Ils sont parfois aussi utilisé pour exporter une vidéo (plutôt que d'utiliser les balises objets, à mon avis pour gérer la compatibilité) ou une pubs (pour protéger le code graçe aux interdictions d'accès des page "cross-domain"). |
|
|
|
00
|
|
|
#14 | |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 071 ![]() |
Citation:
__________________
Ma page 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 ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com