2013-02-28 144 views
3

我在DIV內有一個iframe頁面,並且我只希望在加載/可用iframe頁面時顯示DIV。如果iframe頁面未加載/不可用,請不要顯示該DIV。僅當加載iframe頁面時才顯示DIV

我寫了一些JS,但它沒有像我期望的那樣工作,無論iframe頁面是否可用,DIV仍然顯示。

代碼:

<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 2013-02-28 05:19:34

+0

不幸的是,我對iframed頁面沒有任何權限。有沒有其他解決方案? – calebo 2013-02-28 05:23:02

+1

解決辦法之一是如果返回成功,則向url創建ajax請求並更新div顯示。但是這不是一個好的解決方案,因爲兩個請求將被提交給第三方網站。 – fmodos 2013-02-28 05:43:57

回答

0

你應該document.ready序改變IFRAME SRC使其解僱你的IFRAME負荷的event.you可以試試這個:

$(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 

}); 
相關問題