【问题标题】:get h1 tag within iframe [duplicate]在iframe中获取h1标签[重复]
【发布时间】:2013-08-17 18:51:14
【问题描述】:

我正在尝试在 ID 为 f1 的 iframe 中查找 <h1> 标记。

简单地尝试$("#f1").find("h1") 返回一个空集。

所以我想可能是因为 iframe 中没有 jquery,所以我不能使用这些方法。

所以我尝试了几种不同的方法。 没有 jquery:

var el = document.getElementById;
el.getElementsByTagName("h1");

运气不好。排序也没有任何意义,因为 getElementsByTagName 是文档的一种方法。虽然我有点认为 iframe 可能是一个单独的文档。

最后我尝试添加 jquery

var el = document.getElementById("f1")
var s = document.createElement("script");
s.src = "http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js";
el.appendChild(s);

将 jquery 附加到 iframe。我可以在 iframe 中嵌入的文档头部的检查器中看到它。然而

var el = document.getElementById("f1");
el.find("h1");

获取类型错误Object #<HTMLIFrameElement> has no method 'find

如何获取<h1> 标签的值?

【问题讨论】:

标签: javascript jquery dom iframe


【解决方案1】:

试试这个

$("iframe#f1").contents().find("h1");

【讨论】:

    【解决方案2】:

    假设iframe的内容与父窗口来自同一个域,则可以使用contents()

    $("#f1").contents().find("h1");
    

    如果域不同,那么您就不走运了,因为同源策略会拒绝您访问。

    【讨论】:

    • TypeError: Object # has no method 'contents'
    • 您需要在 jQuery 选择器上调用 contents()。从该错误消息的外观来看,您尝试在本机 DOM 元素上使用它。
    • 没错。傻我。非常感谢!
    猜你喜欢
    • 2018-05-07
    • 2010-10-04
    • 1970-01-01
    • 2012-12-28
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多