我想用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
访问框架集的框架。