获取给定 URL 的 iframe DOM 元素

Posted

技术标签:

【中文标题】获取给定 URL 的 iframe DOM 元素【英文标题】:Get an iframe DOM element given its URL 【发布时间】:2015-12-29 03:48:09 【问题描述】:

我正在使用 w3c 资源计时 API。 window.performance.getEntriesByType("resource");这给出了包括 iframe 在内的资源列表。但是,为了获取嵌入式 iframe 的资源,我需要获取 iframe 的性能对象,这需要我引用其 DOM 节点/元素。

        var myiframe2 = $("#myiframe2");
        var myiframeContentWindow = myiframe2[0].contentWindow;
        var iframeContentPerf = myiframeContentWindow.performance;

问题是,如果我只知道 iframe 的 URL,如何获取 iframe 的节点引用,这就是我所知道的(与上面的代码示例不同,我不会知道 iframe 的 ID 或名称)。

除了遍历文档的元素然后过滤 iframe 并将 iframe 的 URL 与 Resource Timing API 返回的内容进行比较之外,是否有一种简单的方法来获取 iframe 的 DOM 节点(给定 iframe 的 URL)?

【问题讨论】:

【参考方案1】:

如果 iframe 的 URL 没有改变,您可以尝试使用 CSS 选择器使用确切的 URL 直接获取它:

document.querySelector('iframe[src="http://example.org"]');

如果 URL 会改变,但每个 iframe 都有一个唯一部分(可以识别特定 iframe):

document.querySelector('iframe[src*="example.org/some/url"]');

【讨论】:

我从 document.querySelector 调用中得到一个空值。任何解决方法? 即使我尝试 document.querySelector('iframe[src*="example.org/some/url"]');打电话 我需要更具体的代码块来提供帮助(您可以提供一个要点:gist.github.com)

以上是关于获取给定 URL 的 iframe DOM 元素的主要内容,如果未能解决你的问题,请参考以下文章

js怎么获取iframe页面中的dom元素

js怎么获取iframe页面中的dom元素

如何获取页面iframe元素内容的高、宽?

父子页面(iframe)相互获取对方dom元素

javascript怎么操作iframe页面里面的dom元素?

Jquery 方式获取 iframe Dom元素