我要与javaScript一起抓取位于嵌套在iframe和框架中的框架中的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 Developer工具中的测试。我还尝试了Geckofx中的相同结果。任何帮助将不胜感激。
一个iframe指向带有src
属性的其他源!您不能将任何HTML嵌入iframe中。将框架集放入HTML文件中,您可以在其中用iframe src指向。然后,您将能够从 window.parent
中选择脚本中的iframe。您可以使用document.frames
。
进行了更多研究后,贾斯汀·摩根的建议是正确的,我想要的是不可能的。我通过将父母iframe加载到浏览器中开始进行部分解决方法。这使我可以正常访问子框架(侧面框架)。