问题如下
document.getElementsByTagName('iframe')[0]无法获得对象
document.getElementsByTagName('iframe')却可以,这是怎么回事?
代码及截图
var ifr = document.getElementsByTagName('iframe');
console.log(ifr);
console.log(ifr[0]);
document.getElementsByTagName('iframe')[0]无法获得对象
document.getElementsByTagName('iframe')却可以,这是怎么回事?
var ifr = document.getElementsByTagName('iframe');
console.log(ifr);
console.log(ifr[0]);
document.getElementsByTagName('iframe'); 返回的是个动态集合, 里面的内容会在每次取值的时候变化.
如果在 console.log(ifr); 和 console.log(ifr[0]); 两天语句之间, 页面内的 iframe 被从文档中移除的话, 那么 console.log(ifr[0]) 此时就会变成 undefined. 题住可以在 console.log(ifr[0]) 后再输出次 ifr 确定一下是否发送了这种情况.
console.log(ifr);
console.log(ifr[0]);
console.log(ifr); // 确认此时 ifr 是否还有内容
frames || window.frames 获取当前页面下的所有iframe
frames[index] || window.frames[index] || window.frames[iframe_id] 获取当前页面下的某个iframe
frames[index].frameElement.contentWindow 获取当前页面下的某个iframe的window
frames[index].frameElement.contentWindow.frames[sub_index].frameElemnet.contentWindow...
希望对你有用
今天遇到了同样的问题,而且是偶发问题,ios出现频率高,之前没有这个问题,从昨天开始测试出现问题的频率变高,同时在mac上的浏览器测试会出现getElementsByTagName('iframe')[0]获取不到对应iframe标签,不知道楼主解决没有
13 回答13.1k 阅读
8 回答3k 阅读
3 回答1.5k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
5 回答1.6k 阅读
7 回答2.3k 阅读
3 回答2.4k 阅读✓ 已解决
你确定那个undefined是ifr[0]的执行结果? 而不是你的console.log(xxxx)?