2013-02-28 4 views
3

У меня есть страница iframe в DIV, и я хочу, чтобы DIV отображался только после загрузки/доступности страницы iframe. Если страница iframe не загружается/недоступна, не показывайте ее вообще.Показать DIV только при загрузке страницы iframe

Я написал несколько JS, но он не работает, как я ожидал, DIV все еще отображается независимо от того, доступна ли страница iframe или нет.

Код:

<div class="ad-container" style="display:none"> 
    <iframe src="//oonagi.org" border="0" scrolling="no" allowtransparency="true" width="500" height="300"></iframe> 
</div> 

var adContainer = $('.ad-container'); 
// check if ad container exist 
if(adContainer.length > 0) { 
    // only show ad once iframe page is loaded 
    adContainer.find('iframe').load(function() { 
    adContainer.css('display', 'block'); 
    }); 
} 
+0

Функция Iframe еще загружается, даже если страница доступно или нет. Вам нужно иметь элемент управления внутри iframe для уведомления родительского окна. – fmodos

+0

К сожалению, у меня нет прав на iframed-страницу. Нет ли другого решения? – calebo

+1

Одна работа вокруг - создать запрос ajax к URL-адресу и обновить отображение div, если возврат был успешным. Но это не очень хорошее решение, потому что на сторонний сайт будут отправлены два запроса. – fmodos

ответ

0

вы должны изменить IFrame SRC на document.ready заказовМои сделать это огонь event.you вашей IFrame полезной нагрузки можно попробовать следующее:

$(document).ready(function() { 

    $('#frame').bind('load', function() { //binds the event 
     $('#ad-container').show(); 
    }); 

    var newSrc = $('#frame').attr('src') + '?c=' + Math.random(); //force new URL 
    $('#frame').attr('src', newSrc); //changing the src triggers the load event 

}); 
Смежные вопросы