我在一个包含多个iframe的页面上。我想通过javascript访问其中的一些DOM元素。
问题是,iframe没有ID或名称属性,只有src:
<iframe src="http://mysite/mypage/etc/etc/etc">divs and such in here</iframe>
在这种情况下,我无法使用
document.getElementById('someframe').contentWindow.document.getElementById(...)
,因为我没有ID来抓取帧。在这种情况下是否可以使用XPath查询或类似查询? (如果有帮助,这里只有一个iframe,其源设置为mysite/mypage
。) 最佳答案
您可以使用:
document.querySelector('iframe[src="http://mysite/mypage/etc/etc/etc"]')
这仅适用于现代浏览器。 https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector
要获得较早的浏览器支持,请按代码名称选择所有iframe。然后遍历收到的所有元素并检查其
src
属性。一个简单的例子:(可以并且应该在自己的实现中编写更好的代码)
var iframes = document.getElementByTagName('iframe');
var matches = [];
for (el in iframes) {
if (el.src === 'http://mysite/mypage/etc/etc/etc') {
matches.push(el);
}
}