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

jQuery Discussion :

Iframe et méthodes javascripts


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut Iframe et méthodes javascripts
    Bonsoir,

    Je suis en train de développer un espace de composition personnalisé. Pour cela, je crée une iframe (seule solution trouvée pour que l'héritage CSS soit cassé) en jQuery. Cet iframe charge une page qui contient du code javascript (l'environnement d'édition finalement). Je souhaite appeler une fonction javascript présente dans mon iframe à partir de l'extérieur ! Sauf, que je ne trouve pas de solution correcte pour faire ceci.

    La meilleure que j'ai trouvée pour le moment fonctionne mais déclenche une erreur qui empêche la poursuite du code javascript.

    Voici le code intéressant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var espaceComposition = $("textarea.composition");
    espaceComposition.after("<iframe class=\"previsualisation\" src=\"pageDeComposition.php\"></iframe>");
    var espacePrevisualisation = $("iframe.previsualisation");
    espacePrevisualisation.load(function(){
    	var head ="<link rel=\"stylesheet\" media=\"screen\" href=\"fichier1.css\"/>";
    	head +="\n<link rel=\"stylesheet\" media=\"screen\" href=\"fichier2.css\"/>";
    	$(this).contents().find("head").append(head);
    	$(this).contents().find("body").append("<div class=\"composition\">"+espaceComposition.val()+"</div>");
    	this.contentWindow.initialiserComposition(); // La ligne incriminée !
    });
    espacePrevisualisation.load();
    Votre aide me sera grandement utile !

    Merci.

    PS: Je n'ai pas une très grande maitrise du Javascript.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    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
    Bonjour,

    hormis le souci d'instanciation soulevé par Daniel, tu trouveras dasn le lien joint beaucoup d'informations sur les conversations mère / fille
    http://www.developpez.net/forums/d27...enetre-enfant/
    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 !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    Bonsoir,

    D'abord : merci pour vos réponses.

    danielhagnoul : je suis allé voir mais je ne comprend pas bien le rapport excepté le fait que la personne ajoutait une iframe de manière dynamique. En effet : ma méthode existe déjà dans le document chargé, je ne l'ajoute pas à la volé. En fait, on peut simplifier mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var espaceComposition = $("textarea.composition");
    espaceComposition.after("<iframe class=\"previsualisation\" src=\"pageDeComposition.php\"></iframe>");
    var espacePrevisualisation = $("iframe.previsualisation");
    espacePrevisualisation.load(function(){
    	this.contentWindow.initialiserComposition(); // La ligne incriminée !
    });
    espacePrevisualisation.load();
    La je dit bien ?
    - Je créait une iframe.
    - Après avoir chargé la page dans l'iframe, tu m'appelle la fonction javascript initialiserComposition.
    - Je charge !

    Le pire, c'est que la fonction est bien exécutée ! Mais Chrome m'indique une erreur qui empêche la suite de l'execution de mon script Javascript :
    Uncaught TypeError: Object [object DOMWindow] has no method 'initialiserComposition'.


    SpaceFrog : en regardant le code du cas numéro 3, j'ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.frames["maFrame"].affiche();
    qui est la solution.

    Sauf que moi, en jQuery : j'ai au choix $(this) et this ! Quel serait l'équivalent en jQuery de la ligne du dessus ? Car je pense qu'il est là le problème !

    Merci.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/02/2009, 17h00
  2. Repeater et appel à une méthode Javascript
    Par rad_hass dans le forum ASP.NET
    Réponses: 1
    Dernier message: 26/11/2008, 16h28
  3. [script.aculo.us] Appel d'une méthode javascript sur le callback onUpdate
    Par thibane dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 02/04/2008, 11h33
  4. Communiquer entre une winform et une méthode javascript
    Par Osiris1900 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/02/2008, 16h16
  5. Classe et méthode Javascript
    Par Gunn_ dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 13h10

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