Comment faire pour obtenir l'élément à l'intérieur d'un élément iframe dans le code Javascript?
J'ai un élément comme ci-dessous à l'intérieur du document, j'ai pu obtenir l'élément iframe par document.getElementById('iframe_id')
, mais comment faire pour obtenir l'élément à l'intérieur de cette iframe? J'ai essayé iframeElement.contentWindow
, et le retour des DOMWindow
n'a pas de propriétés. Aussi essayé iframeElement.docuemnt
et iframeElement.contentDocument
, deux d'entre eux ne sont pas définis. Comment puis-je l'obtenir? Je suis en utilisant la dernière Chrome dans mon expérience.
Ici est l'élément iframe
<iframe id='iframe_id'>
<html>
<body>many content here</body>
</html>
</iframe>
sont votre page et de la page à l'intérieur de l'iframe à partir du même domaine? si non, chrome ne sera probablement pas vous donner accès aux autres DOM.
comment vérifier le domaine de l'iframe? Il est très possible qu'ils viennent de domaine différentes.
la première partie de l'url. si les pages sont sur le même serveur, vous devriez être bien.
comment vérifier le domaine de l'iframe? Il est très possible qu'ils viennent de domaine différentes.
la première partie de l'url. si les pages sont sur le même serveur, vous devriez être bien.
OriginalL'auteur Thomson | 2011-10-20
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez interroger le contenu dans une iframe si le contenu est le même protocole, le domaine et le numéro de port que le script qui interroge. Il est appelé MÊME ORIGINE
Si c'est le cas, alors ce code va afficher le contenu. Si non, vous ne peut pas accéder à l'iframe à partir d'un script dans un normal la page html
Démo - testé avec IE8, Chrome 13 et Fx6
Oui. De toute façon si la page est sur le même serveur, mon code fonctionne. Veuillez voir la mise à jour à propos de la même origine
Encore
doc
la destruction, très étrange.Je viens de lancer votre démo dans mon google Chrome, et la boîte de message affiche le droit contenu dans l'intérieur de l'html. Donc, cela pourrait être une question de sécurité que Chrome bloque les accès à l'intérieur DOM puisqu'il s'agit d'un autre domaine, comme Tetaxa mentionnées dans le commentaire.
C'EST un problème de sécurité si le protocole, le domaine ou le port est différent.
OriginalL'auteur mplungjan
Avoir:
Pour obtenir le contenu du document, vous pouvez utiliser:
Vous pouvez ensuite rechercher votre élément à l'intérieur de l'iframe par id.
Il travaillera à moins que l'iframe source est défini sur un autre domaine.
Je suis la Uncaught DOMException: Bloqué un cadre avec origine "example.com" d'accéder à une croix d'origine image. tout soupçon?
Si vous possédez le code iframe, vérifier la solution: stackoverflow.com/a/25098153/750216
OriginalL'auteur Răzvan Flavius Panda
Vous devriez être en mesure d'y accéder par
document.getElementById('yourIFrame').document.getElementById('yourElement')
OriginalL'auteur dwalldorf