如何不使用getElementById获取动态生成的iframe的src值
通过类名获取iframe的src属性
你之前的代码没生效,是因为document.getElementsByClassName()返回的是HTMLCollection(元素集合),不是单个DOM元素,直接访问.src自然拿不到值。
解决方法分两种情况:
如果页面中只有一个目标iframe,或者你只需要第一个匹配的:
用document.querySelector()直接获取单个元素,它支持CSS类选择器,代码如下:var srcURL = document.querySelector('.fancybox-iframe').src;如果页面中有多个该类名的iframe,需要逐个检查src:
先获取所有匹配元素,再遍历集合逐个访问.src属性,示例代码:var iframes = document.getElementsByClassName('fancybox-iframe'); // 遍历每个iframe检查src for (var i = 0; i < iframes.length; i++) { var currentSrc = iframes[i].src; // 替换成你的匹配逻辑 if (currentSrc.indexOf('指定字符串') !== -1) { console.log('找到匹配的src:', currentSrc); // 这里可以添加后续操作 break; // 找到第一个匹配项就停止遍历 } }
另外,也可以用document.querySelectorAll('.fancybox-iframe')获取所有匹配元素,它返回的是NodeList,同样可以通过索引或forEach遍历(注意旧浏览器可能不支持forEach)。
内容的提问来源于stack exchange,提问作者dubbs
相关产品推荐
相关产品推荐

