我在一个包含多个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);
    }
}

10-05 20:53
查看更多