通过其src属性获取一个框架

时间:2014-11-25 00:37:48

标签: javascript dom iframe

我在一个有多个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。)

1 个答案:

答案 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);
    }
}