1

我想用 javascript 抓取一个 HTML 元素,该元素位于嵌套在 iframe 和框架集中的框架中。HTML 结构如下所示:

<iframe id="central_iframe" name="central_iframe" (...)>
    <frameset cols="185, *" border="0" framespacing="0" frameborder="0">
        <frame src="/subdomain" name="SideFrame" id="SideFrame" (...)>

以前我是这样做的:

myIframe = document.getElementById('central_iframe');
mySideFrame = myIframe.contentDocument.getElementById('SideFrame');
myElement = mySideFrame.contentDocument.getElementById('iWantToGrabThis');

但是,这在这里不起作用,因为 myIframe.contentDocument 返回 null。另一方面,myIframe.contentWindow 返回一个完全没有属性的窗口(因此 myIframe.contentWindow.document 未定义)。同样,当我尝试

central_iframe.SideFrame

还会返回一个没有任何属性的窗口。

编辑:该页面不是我的,因此我无法更改其来源。我只是想和它互动。

我正在 Chrome 开发人员工具中进行测试。我也在 GeckoFX 中尝试过同样的结果。任何帮助将不胜感激。

4

2 回答 2

0

iframe 指向具有该src属性的另一个源!您不能在 iframe 中嵌入任何 html。将框架集放入 iframe src 指向的 html 文件中。然后,您将能够从带有window.parent. 您可以使用 访问框架集的框架document.frames

于 2012-10-22T08:46:20.870 回答
0

在做了更多研究之后,似乎贾斯汀摩根的建议是正确的,我想要的是不可能的。我首先通过在浏览器中加载父 iframe 来解决部分问题。这使我可以正常访问子框架(SideFrame)。

于 2012-10-25T15:20:02.607 回答