需要一些使用纯Javascript访问IFrame的建议。
上下文: 我有一个包含函数“Func1”的JS脚本“A.JS”。在页面中,此函数在IFrame之前调用,如下所示
<script> A.Func1();</script>
<iframe src='xyz.com' title='Hello' type='portlet.iframe' > </iframe>
请注意,此IFrame是随机生成的,因此我不知道它在运行时的ID和名称。因此,我可以访问它的唯一方法是获取IFrame数组的句柄并循环遍历每个IFrame,直到我通过其标题识别正确的一个。
另请注意,JS函数调用位于IFrame之前/之上。
现在在我的函数Func1()
中,我的代码如下。我试图在正确的IFrame上获得一个句柄,但下面的所有方法都返回了0长度的数组。我暂停并在chrome版本29中看到这个。实际上,最后一个数组iframeNodesAll4
显示“Windows”作为值!
var iframeNodesAll1 = document.getElementsByTagName("iframe");
var iframeNodesAll2 = window.parent.document.getElementsByTagName("iframe");
var iframeNodesAll3 = window.document.getElementsByTagName("iframe");
var iframeNodesAll4 = window.frames;
那我在这里错过了什么?是因为在IFrame之前调用/加载了脚本吗?
谢谢!
答案 0 :(得分:0)
是因为在IFrame之前调用/加载了脚本吗?
是的,我相信这是你的问题,尝试将函数调用移到iframe之后,看看会发生什么
修改强>
或者,您可以等到页面加载后运行该功能:
<script>
window.onload = function() {
A.func1();
}
</script>