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 :

[DOM] IFRAME : élément vs fenêtre


Sujet :

JavaScript

  1. #1
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut [DOM] IFRAME : élément vs fenêtre
    Une petite astuce que je vous donne, parce que je me suis fait avoir avec ça : un IFRAME dans une page web peut être abordé tantôt comme élément HTML, tantôt comme une fenêtre.

    Supposont que l'on ait
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <IFRAME  id="idDuFrame" name="nomDuFrame"></IFRAME>

    Pour y accéder par sa facette élément, il faut employer le
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = document.getElementById("idDuFrame");
    (si le frame a un ID),

    Et pour y accéder par sa facette window, il faut employer
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = document.frames("nomDuFrame");

    Contrairement aux apparences, les deux méthodes ne renvoient pas le même objet!

    Les méthodes applicables ne sont pas les mêmes dans un cas et dans l'autres, et j'ai remarqué que le SDK DHTML ne facilite pas les choses en ne faisant pas vraiment la distinction entre les deux (il dit que tel ou tel méthode est applicable à un objet IFRAME, sans dire s'il s'agit de l'IFRAME en tant qu'élément ou en tant que fenêtre)

  2. #2
    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
    Il s'agit effectivement de 2 manières de faire référence à une iframe (directement par son ID, ou par indirectement par son appartenance à une collection d'objets)

    Mais contrairement à ce que tu dis, l'objet a toujours le même type (cadre incorporé).

    Tu noteras que dans ta syntaxe "window", l'objet fait partie de la collection "frames"

    Si le constat (syntaxes différentes) est juste, la déduction (2 types possibles) ne l'est pas ...

    A+

  3. #3
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut
    Citation Envoyé par E.Bzz
    Mais contrairement à ce que tu dis, l'objet a toujours le même type (cadre incorporé).
    Sur IE6, si j'y accéde par sa facette élément, je ne peux pas y appliquer innerHTML = "...", tandis que si j'applique cela à sa facette fenêtre, là ça fonctionne.

    C'est ce phénomène qui m'a fait pensé que les deux objet ne sont pas les même.

    Et dans mon code j'utilise maintenant deux variable frameElement frameWindow

    A moins que ce ne soit une erreur de ma part ?

  4. #4
    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 Hibou57
    Sur IE6, si j'y accéde par sa facette élément, je ne peux pas y appliquer innerHTML = "...", tandis que si j'applique cela à sa facette fenêtre, là ça fonctionne.

    C'est ce phénomène qui m'a fait pensé que les deux objet ne sont pas les même.
    La notion de "facette" n'est pas reconnue par le DOM

    Ces écarts sont uniquement dûs à la syntaxe utilisée, il me semble ...

    A+

  5. #5
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut
    Bonjour de bon matin
    Citation Envoyé par E.Bzz
    La notion de "facette" n'est pas reconnue par le DOM
    Oui, je sais, mais c'est difficile de parler d'un phénomène non-prévu par le DOM avec des mots du DOM.

    Citation Envoyé par E.Bzz
    Ces écarts sont uniquement dûs à la syntaxe utilisée, il me semble ...
    Beh en même temps, puisqu'il y a un impacte important, il ne faut pas l'ignorer. Je en sais pas si c'est seulement la syntax, parce que quand la référence à l'objet et dans une variable, il n'y a plus de différence de syntax.

    En même temps ça me semble logique dans le fond. Parce qu'un IFRAME est bien sure un élément HTML. Mais il est aussi une fenêtre en même temps, qui lui n'est pas un élément HTML.

    Ce n'est pas par esprit de contradiction que je dis ça, c'est seulement que j'essaie de comprendre.

    En tous cas je distingue les deux cas dans mes codes, et je pense que comme cette distinction est logique, elle a de bonne chance de s'appliquer aux autres navigateur également.

    Merci pour tes commentaires... je crois que le terme facette n'est effectivement peut-être pas approprié, et je parlerai plutôt d'objets de types différents.

    à+

Discussions similaires

  1. [DOM] dom d'éléments html
    Par Invité dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/11/2007, 22h41
  2. [DOM] masquer élément créé dans le script
    Par grinder59 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/09/2007, 11h57
  3. [DOM] Iframe vide après déplacement dans le dom
    Par echataig dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/07/2007, 15h54
  4. [DOM] iframe - obtenir la donnée sélectionnée
    Par fabrisss dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 13/01/2006, 21h00

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