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 :

Modification du contenu d'un iframe


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut Modification du contenu d'un iframe
    Bonjour.

    J'ai besoin d'intégrer une application dans un iframe.
    Manque de bol, je n'ai aucun accès à cette application en question, et encore moins de bol, dans le formulaire de login (simple formulaire HTML), l'auteur de l'application a placé un attribut TARGET="_TOP", du coup, son application s'ouvre systématiquement en utilisant la fenêtre complête au lieu de rester dans son iframe.
    Comme je n'ai aucun accès aux sources de l'application et que je ne peux pas demander à son auteur de la modifier (du moins je peux demander, mais ça ne sera pas fait), j'ai pensé à le faire par JavaScript en utilisant l'évènement onload de l'iframe.

    Je me suis lancé sur cette voie, et la gestion du onload semble fonctionner, car la fonction assignée est bien exécutée.
    Là où je butte, c'est pour accéder au document chargé dans l'iframe pour pouvoir faire mes traîtements, à savoir la sélection du noeud qui m'embête et le remplacer par un qui me conviendra mieux.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      var iframeElement= document.getElementById(iFrameId);
      var innerDocument= iframeElement.contentWindow.document;
    Je pensais pouvoir utiliser innerDocument comme j'utiliserais document, mais lorsque j'essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    innerDocument.getElementById(elementId) ...
    j'obtiens systématiquement le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uncaught exception: Permission refusée d'obtenir la propriété HTMLDocument.getElementsByTagName
    Une précision, je m'assure que le document de l'iframe soit chargé avant de lancer l'exécution de la fonction et dans firebug, j'ai bien mon document chargé qui est accessible en inspectant l'arbre XML (en mode debuggage JS, pas dans la source HTML).

    Suis-je parti dans une mauvaise direction ?
    Quelqu'un a-t-il expérimenté ce genre de problèmes et/ou a trouvé une solution ?

  2. #2
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut
    En faisant des tests avec des pages locales, j'arrive à faire fonctionner l'ensemble sans problème, alors que lorsque le contenu de l'iframe est situé sur un autre serveur que le document contenant l'iframe, j'obtiens l'exception donnée précédemment.

    De mémoire, cette exception ressemble beaucoup à celles que j'obtenais lorsque j'essayais de faire des requetes AJAX sur un autre serveur que celui d'origine.

    Y-aurait-il un lien entre les 2 ?

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par yjuliet Voir le message
    Y-aurait-il un lien entre les 2 ?
    Oui : la même sécurité qui empêche ce genre d'intervention distante.

    A+

  4. #4
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut
    Merci à toi E.Bzz

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/12/2005, 16h53
  2. [vb6 et access] problème de modification de contenu de champ
    Par dj_tess dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/12/2005, 19h26
  3. Modification du contenu d'un Request() ??
    Par Invité dans le forum ASP
    Réponses: 5
    Dernier message: 05/07/2005, 14h31
  4. Modifier contenu d'une iframe
    Par castaka dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/06/2005, 15h20
  5. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14

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