我在使用jQuery contents()
让Chrome返回iframe的内容时遇到问题。以下代码在FireFox中按预期工作,但Chrome不返回正文的任何内容。 iframe文档与主文档位于同一个域中,确实有一些内容。 (我在文档中包含两次iframe,使用.eq(#)
选择器区分每个iframe,这就是jQuery.fn.init[2]
显示2个元素的原因。)正如我所说,这适用于FireFox。
var $iframe_contents = $("iframe").contents();
从Chrome调试器中摘录。
$iframe_contents: jQuery.fn.init[2] (There are 2 iframes in the document)
0: document
URL: "about:blank"
activeElement: body
all: HTMLAllCollection[3]
...
baseURI: "about:blank"
...
**body: body**
...
baseURI: "about:blank"
...
**childElementCount: 0
childNodes: NodeList[0]
children: HTMLCollection[0]**
classList: DOMTokenList[0]
...
dataset: DOMStringMap
dir: ""
...
**firstChild: null
firstElementChild: null**
hidden: false
id: ""
**innerHTML: ""
innerText: ""**
...
**lastChild: null
lastElementChild: null**
link: ""
localName: "body"
.....
.....
答案 0 :(得分:1)
我相信我已经解决了我的问题。 Firefox似乎与其他浏览器的工作方式不同。它会加载iframe,然后触发.ready(),而Chrome,Safari和IE会在DOM中出现iframe之前触发.ready()。因此,对于其他人,请等到iframe加载后再初始化功能模块。