2012-03-02 67 views
0

讓我來解釋一下情況。Fancybox從內部檢測

網站A:www.mywebsitea.com 網站B:www.mywebsiteb.com

網站IST舉辦的fancybox。 網站B正在託管在A的Fancybox中打開的內容。

我必須從網站B中查找我的內容是否在A的fancybox中打開。

我該怎麼做? 我試過多種解決方案,但它們不起作用。

一個這種解決方案是:

try { 
    if(!(parent.$ && parent.$.fancybox)) 
    { 
     window.location = "http://mylink.com" 
    } 
    } 
    catch(e){ 
    } 

有某人其他的解決辦法?

感謝您的幫助。 阿德里安

+0

iFrame是否爲空?或者鏈接一直在變化,你需要確保鏈接通過?還是你想監視服務器錯誤,如404? – Ohgodwhy 2012-03-02 09:17:22

+0

iFrame不是空的..我從一個鏈接開始。導航期間鏈接會更改。你可以看看網站。 www.gstaad.ch - >在網站頂部點擊Livecam。 – 2012-03-02 09:55:33

回答

2

你除了在同一個域中之外,不能到達父變量。請參閱:Same origin policy

卜您可以檢查是在iframe中與

var isInIframe = self != top; 

如果是在iframe中,然後你無法到達頂部窗口,這意味着一些網站上顯示的IFRAME您的網站。

+0

+1我的回答應該考慮「同源的政策」,由@arunes指出 – JFK 2012-03-02 10:06:08

0

如果你想知道,如果Site BSite Aiframe內打開,那裏面的Site B有此腳本

if(parent.window.location.href =="http://www.mywebsitea.com"){ 
alert('opened from Site A') 
} 

在另一方面,如果你只是想知道,如果Site B開幕從任何地方(包括Site A),但內部的fancybox,然後裏面的Site B有此腳本

if(parent.jQuery().fancybox) { 
alert("opened inside of fancybox") 
}