web-dev-qa-db-fra.com

Comment puis-je accéder aux éléments iframe avec Javascript?

J'ai une page Web où il y a un texarea dans un iframe. J'ai besoin de lire la valeur de cette zone de texte à partir de sa page enfant javascript. Actuellement, en utilisant window.parent.getelementbyID().value dans le javascript, je suis capable de récupérer les valeurs de tous les contrôles de la page parent, à l'exception de la zone de texte dans l'iframe.

L'ID de trame et le nom de trame dans ma page parent changent au moment de l'exécution, donc nous ne pouvons pas utiliser l'ID de trame/nom de trame pour référence.

53
archana roy

Si vous avez le HTML

<form name="formname" .... id="form-first">
    <iframe id="one" src="iframe2.html">
    </iframe>
</form>

et JavaScript

function iframeRef( frameRef ) {
    return frameRef.contentWindow
        ? frameRef.contentWindow.document
        : frameRef.contentDocument
}

var inside = iframeRef( document.getElementById('one') )

inside est maintenant une référence au document, vous pouvez donc faire getElementsByTagName('textarea') et ce que vous voulez, selon ce qui se trouve à l'intérieur du src iframe.

69
meder omuraliev

En utilisant jQuery, vous pouvez utiliser contents(). Par exemple:

var inside = $('#one').contents();
19
Doug Amos