jQuery内容方法不会返回Chrome中的iframe内容

时间:2015-03-17 22:29:55

标签: jquery google-chrome iframe

我在使用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"
  .....
  .....

1 个答案:

答案 0 :(得分:1)

我相信我已经解决了我的问题。 Firefox似乎与其他浏览器的工作方式不同。它会加载iframe,然后触发.ready(),而Chrome,Safari和IE会在DOM中出现iframe之前触发.ready()。因此,对于其他人,请等到iframe加载后再初始化功能模块。