使用jQuery获取iframe的html内容

我正在尝试定制OpenCms(基于java的开源CMS),它使用嵌入式FCKEditor,这是我正在尝试使用js / jQuery访问。

我尝试获取iframe的html内容,但是,总是将null作为返回值。 这就是我尝试从iframe中获取html内容的方法:

var editFrame = document.getElementById('ta_OpenCmsHtml.LargeNews_1_.Teaser_1_.0___Frame'); alert( $(editFrame).attr('id') ); // returns the correct id alert( $(editFrame).contents().html() ); // returns null (!!) 

查看屏幕截图,我想要访问的是“LargeNews1 / Teaser”html部分,该部分目前包含值“Newsline en …”。 下面你还可以看到Firebug中的html结构。

但是, $(editFrame).contents().html()返回null,我无法找出原因,而$(editFrame).attr('id')返回正确的id。

iframe内容/ FCKEditor位于同一站点/域上,没有跨站点问题。

在此处输入图像描述

iframe的Html代码位于http://pastebin.com/hPuM7VUz

更新:

这是一个有效的解决方案:

 var editArea = document.getElementById('ta_OpenCmsHtml.LargeNews_1_.Teaser_1_.0___Frame').contentWindow.document.getElementById('xEditingArea'); $(editArea).find('iframe:first').contents().find('html:first').find('body:first').html('some new
value');

.contents()。html()无法获取iframe的html代码。 您可以执行以下操作来获取它:

 $(editFrame).contents().find("html").html(); 

那应该为你返回iframe中的所有html。 或者您可以使用“body”或“head”而不是“html”来获取这些部分。

你可以把内容作为

 $('#iframeID').contents().find('#someID').html(); 

但框架应该在同一个域中参考http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/

我建议用第一行替换:

  var editFrame = $('#ta_OpenCmsHtml.LargeNews_1_.Teaser_1_.0___Frame'); 

…和第二个警报表达式:

  editFrame.html() 

另一方面,如果你更喜欢完成相同的w / o jquery(更酷,恕我直言)只能使用JavaScript:

  var editFrame = document.getElementById('ta_OpenCmsHtml.LargeNews_1_.Teaser_1_.0___Frame'); alert(editFrame.innerHTML); 

我认为FCKEditor有自己的API,请参阅http://cksource.com/forums/viewtopic.php?f=6&t=8368

你的iframe:

  

我们可以从这个iframe获取数据:

 var content=$("iframe").contents().find('body').html(); alert(content);