web-dev-qa-db-fra.com

Accéder à l'objet document d'un cadre avec JavaScript

Je teste sur cette page , et je ne suis pas sûr de ce qui me manque.

// Two frames on the page
> document.getElementsByTagName("frame").length
2

// Same domain, so no security restrictions
> document.getElementsByTagName("frame")[0].src
"http://www.quackit.com/html/templates/frames/menu_1.html"
> window.location.href
"http://www.quackit.com/html/templates/frames/frames_example_1.html"

// Can't access the document
> document.getElementsByTagName("frame")[0].document
undefined

Il semble que cela devrait fonctionner, alors quel est le problème? Il doit fonctionner dans IE8, mais je teste également dans Chrome (la plus récente écurie).

13
Brigand

Le moyen le plus complet d'obtenir le contenu d'un cadre consiste à quelque chose comme ceci:

var theFrame = document.getElementsByTagName("frame")[0];
var theFrameDocument = theFrame.contentDocument || theFrame.contentWindow.document;
var button = theFrameDocument.getElementById("mybutton");

Cependant, il est possible d'obtenir le document d'un <frame> En utilisant son nom, comme:

window.frames["frame_name"].document

si le HTML était:

<frame name="frame_name">...</frame>
32
Ian

Vous pourriez utiliser

parent.frame.location.href = ...

Où frame est le nom/id du cadre que vous souhaitez modifier.

Salue Marc

1
mooonli