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).
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>
Vous pourriez utiliser
parent.frame.location.href = ...
Où frame est le nom/id du cadre que vous souhaitez modifier.
Salue Marc