2013-10-15 2 views
4

Я использую размещенную CMS, которая отображает iFrame в другом iFrames. Эти iFrames загружаются из одного домена, но поскольку это размещенная CMS, у меня нет прямого доступа к этим iFrames. Возможно ли, используя jQuery, вставить содержимое HTML в тег body iFrame с идентификатором re_contentIframe?Использование jQuery для вставки HTML в тег тела iFrame

Вот как код делает на моем сайте:

<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>"); 
    }); 
}); 
+1

Возможный дубликат http://stackoverflow.com/questions/5924936/change-html-of-an-iframe-with-jquery? – VJS

+0

@VijetaShetty - Я так не думаю. Вот где я нашел код, который я пробовал. Как сказано выше, это не работает, и я не уверен, почему. – L84

ответ

4

Проблема в том, что вы пытаетесь получить доступ к вложенному фрейму.

Рамка #re_contentIframe вложена в пределах #editorf, которая впоследствии будет вложена в ваш документ.

Try:

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

Fiddle: http://jsfiddle.net/8VP4y/3/

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>'); 
+0

Это не сработало. – L84

Смежные вопросы