4

我正在使用在另一个 iFrame 中呈现 iFrame 的托管 CMS。这些 iFrame 是从同一个域加载的,但由于这是托管的 CMS,因此我无法直接访问这些 iFrame。是否可以使用 jQuery 将 HTML 内容插入到bodyid 的 iFrame 的标签中re_contentIframe

以下是代码在我的网站上的呈现方式:

<div class="editor">
  <iframe id="editorf"  frameborder="0" src="/ForumEditor.aspx?ForumID=2221&TopicID=-1&NoTemplate=False&Internal=False" style="display: inline;">
    <html>
      <head></head>
        <body>
          <!-- CODE -->
            <iframe id="re_contentIframe" frameborder="0" src="javascript:'<html></html>';">
             <html>
              <head></head>
               <body> <!-- THIS IS WHAT I WANT TO TARGET --> </body>
             </html>
            </iframe>
          <!-- CODE -->
      </body>
    </html>
  </iframe>
</div>

我尝试使用以下代码,但此代码没有任何反应(包括没有错误):

$(function() {
   $( "#test" ).click(function() {
       $("#re_contentIframe").contents().find("body").html("<p>new HTML content goes here</p>");
   });
});
4

2 回答 2

4

问题是您正在尝试访问嵌套框架。

#re_contentIframe框架嵌套在 内,#editorf随后嵌套在您的文档中。

尝试:

$('#re_contentIframe').contents().find('body').find('#editorf').contents()

小提琴:http: //jsfiddle.net/8VP4y/3/

于 2013-10-15T06:58:12.670 回答
0

没查过,可能有帮助:

var frameObject = document.getElementById('editorf');
var frameContent = frameObject.contentDocument ||
frameObject.contentWindow.document;
var insideIframe = frameContent.getElementById('re_contentIframe');
var insideIframeContent = insideIframeObject.contentDocument ||
insideIframeObject.contentWindow.document;
var $body = $('body',insideIframeContent);
$body.html('<div>contentupdated</div>');
于 2013-10-15T06:49:49.077 回答