2014-02-15 53 views
0

目前,我的網站正在嵌入另一個網站內。但問題是我想知道什麼時候顯示我的iframe,以便可以做一些腳本。檢測何時顯示iframe

事情與此類似:

<div id="wrapper"> 
    <iframe id="page1"> 
     <!-- MY PAGE 1 CODE GOES HERE--> 
    </iframe> 
    <iframe id="page2"> 
     <!-- MY PAGE 2 CODE GOES HERE--> 
    </iframe> 
    <iframe id="page3"> 
     <!-- MY PAGE 3 CODE GOES HERE--> 
    </iframe> 
</div> 

這裏的問題,包裝負載我所有的同時嵌入式代碼,然後隱藏一切,只顯示一個。然後當用戶互動時,它會顯示另一個頁面。

我的問題是:我需要知道什麼時候包裝顯示我的頁面1 /頁面2 /頁面3代碼,以便可以做進一步的過程。

希望收到一些提示。

@edited 2014-02-15: 我的代碼正在被包裝的所有者使用。您可以將其視爲插件內容。

包裝器使用display:none來隱藏或顯示包裹我內容的iframe。

+0

顯示/隱藏特定iframe的相關代碼 –

+0

如果主頁面沒有[相同域名](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript)與您的頁面,恐怕你無法找到你的頁面的可見性。 – Teemu

+0

@ A.Wolff我編輯了我的問題來澄清問題。 – vtloc

回答

0

答案取決於iframe如何變得不可見。如果使用display: none,一個簡單的方法來檢測的iframe的iframe 的可見性是:

var isVisible = !!window.frameElement.offsetWidth; // --> true or false 

offsetWidth等於0,當display被設置爲在iframe none或其父元素之一。

+0

感謝您的幫助。看起來它現在工作,我可以檢測iframe是否隱藏在負載上。那麼接下來的問題是如何知道幀何時被設置爲可見,你知道該怎麼做嗎? – vtloc

+0

'isVisible'在我的回答中等於'true',如果iframe有一個寬度...你用JS設置可見性,只需在同一代碼中更改iframe中的變量? – Teemu

+0

我的情況有點不同。所以我使用了一個計時器來循環並等待幀改變其可見性。它現在工作。謝謝。 – vtloc