我想用javascript抓取位于嵌套在iframe和frameset中的框架中的HTML元素。 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中尝试了相同的结果。任何帮助将不胜感激。

最佳答案

iframe会使用src属性指向其他来源!您不能在iframe中嵌入任何HTML。将框架集放到iframe src指向的html文件中。然后,您可以使用window.parent从脚本中选择iframe。您可以使用document.frames访问框架集的框架。

10-08 05:44