Aceder ao objecto do documento de uma moldura com JavaScript

Estou a testar esta página e não sei o que me está a escapar.

// 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
Parece que isto deve funcionar, então qual é o problema? Ele precisa trabalhar no IE8, mas eu também estou testando no Chrome (mais recente estável).

Author: Boaz, 2013-02-19

2 answers

A maneira de obter o conteúdo de uma moldura é com algo assim:
var theFrame = document.getElementsByTagName("frame")[0];
var theFrameDocument = theFrame.contentDocument || theFrame.contentWindow.document;
var button = theFrameDocument.getElementById("mybutton");

No entanto, é possível obter um documento de <frame> usando o seu nome, como:

window.frames["frame_name"].document

Se o HTML fosse:

<frame name="frame_name">...</frame>
 25
Author: Ian, 2013-02-18 20:45:40

Podias usar

parent.frame.location.href = ...

Onde a moldura é o nome / id da moldura que gostaria de alterar.

Greets Marc

 0
Author: mooonli, 2013-02-18 20:32:13