Javascript document.images未加载到chrome或firefox上,但已加载到IE上
我有一个锚定标签Javascript document.images未加载到chrome或firefox上,但已加载到IE上,javascript,html,dom,cross-browser,Javascript,Html,Dom,Cross Browser,我有一个锚定标签 在foo()函数中,我用来检索包含3个图像的数组。它在IE中运行良好,但在chrome和firefox上不起作用 document.images.length在IE上返回3,在Chrome和Firefox上返回0。你对解决这个问题有什么建议吗 不适合你吗 它不返回数组,而是返回节点列表。如果需要阵列: var imgNodes = document.getElementsByTagName('img'); var images = [].slice.call(imgNod
在foo()
函数中,我用来检索包含3个图像的数组。它在IE中运行良好,但在chrome和firefox上不起作用
document.images.length
在IE上返回3,在Chrome和Firefox上返回0。你对解决这个问题有什么建议吗 不适合你吗
它不返回数组,而是返回节点列表。如果需要阵列:
var imgNodes = document.getElementsByTagName('img');
var images = [].slice.call(imgNodes);
或者使用jQuery
$('img').each(function(){
// do something with $(this).
});
您的
标记位于框架中的不同文档中
首先解析主文档中的右框架对象。如果您有框架的名称,请执行以下操作:
var frame = document.querySelector("frame[name='NAME']");
如果不命名框架,则必须在document.getElementsByTagName('frame')返回的框架数组中对框架进行索引代码>
要访问文档中的所有图像,可以执行以下操作:
frame.contentDocument.images
或
完全相同的结果。感谢您的回复:)我敢说document.querySelectorAll('img')
也会返回一个空列表,是吗?@Eng.Fouad是iframe/frameset中的那些img标记?@Eng.Fouad这就是所有API都无法工作的原因。您的img标签位于不同的文档中。首先解析正确的文档,然后使getElementsByTagName或images属性具有访问权限。如果在函数外部打印document.images的长度,会发生什么情况?我在FF上试过,它确实有效。@Smokie如果我在最后一个锚标记后调用document.images.length
,它将在所有浏览器上打印3。我们能看到完整的foo()函数吗?你能给我们一个答案吗?我打赌foo()函数中应该有错误,如果你能把它贴在这里会很有帮助…为什么这是被否决的,而凯的答案是被否决的?这个选择和凯的一样合理,似乎被取消了。我忘了+1!+你说得对。我解决了这个问题,只需将文档
替换为父框架[2]。文档
:)
frame.contentDocument.images
frame.contentDocument.getElementsByTagName("img")