无法在iframe和带有javascript的框架集中获取框架(域相同)
我打算用javascript获取一个HTML元素,该元素位于一个嵌套在iframe和一个frameset中的框架中。HTML结构如下所示:无法在iframe和带有javascript的框架集中获取框架(域相同),javascript,html,dom,Javascript,Html,Dom,我打算用javascript获取一个HTML元素,该元素位于一个嵌套在iframe和一个frameset中的框架中。HTML结构如下所示: <iframe id="central_iframe" name="central_iframe" (...)> <frameset cols="185, *" border="0" framespacing="0" frameborder="0"> <frame src="/subdomain" nam
<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。将框架集放入一个html文件中,通过iframe src指向该文件。然后,您可以使用window.parent从脚本中选择iframe。您可以使用document.frames访问框架集的框架。在做了更多的研究之后,Justin Morgan的建议似乎是正确的,我想要的是不可能的。首先,我在浏览器中加载父iframe,从而实现了部分解决方案。这使我能够正常访问子帧侧框。如果可能的话,我会感到震惊。在现代浏览器中,反XSS安全功能应该可以防止这种情况的发生。@JustinMorgan我当时的印象是,只有当帧来自的域和主页不同时,它才会被阻止。再一次,我对这一点的了解和我在stackoverflow上读到的一样多。谢谢你的回复。我无法访问该页面的源代码。我只是想和它互动。