我在一个有多个iframe的网页上。我想通过javascript访问一个来操作它上面的一些DOM元素。
问题是,iframe没有id或name属性,只有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
。)
答案 0 :(得分:3)
您可以使用:
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);
}
}