Я пытаюсь сделать что-то действительно простое, но все же просто не работает. Im пытается показать div на загрузке страницы в iFrame. Если я сам просматриваю страницу html, div показывает. Кто-нибудь знает о любых возможных проблемах с jQuery в iFrames? Если я сделаю предупреждение(), это также покажет.
Мой базовый код ниже:
Ссылка на iFrame
<li>
<iframe src="/Markup/Page2.htm" marginheight="0" marginwidth="0" frameborder="0"></iframe>
</li>
HTML внутри Page2.htm
<div class="Container">
<p class="ShowThis" style="display:none;">Show me on load</p>
</div>
jQuery внутри Page2.htm
$(document).ready(function () {
$('.ShowThis').show();
});
Вам нужно получить ссылку на iframe и получить доступ к ее документу, а затем выполнить поиск в DOM с документом iframe в качестве контекста.
Здесь общий JavaScript для этого:
$iframe = $('#myIframe');
$iframeElem = $('#myIframeElem', $iframe.contents());
И код, специфичный для вашего использования:
Разметка:
<iframe id="myIframe"></iframe>
В стр.2.html:
<div class="Container">
<p class="showThis" style="display:none;">Show me!</p>
</div>
JavaScript:
iframe = $('#myIframe');
$iframe.load(function() {
$iframeElem = $('.showThis', $iframe.contents());
$iframeElem.show();
});
$iframe.attr('src', 'page2.html');
Я думаю, что проблема с этим кодом заключается в том, что вы неправильно ссылаетесь на элементы Iframe правильно. Класс контейнера в пределах Iframe должен быть доступен, ссылаясь на Iframe.
var iframe=$("#Iframe");
$("#Iframe").load(function(e) {
$(iframe.contentWindow.document.body).find('.Container').bind('event',function( event ){
//write code here
});
});
.contents();
?