2010-11-14 29 views
1

我試圖找到一個可靠的解決方案,以確定我的網頁是否在使用javascript的外部網站上的iframe中加載。如何理解頁面是否使用javascript加載爲iframe(外部網站)?

如果iframe src位於同一個域中,它很容易:可以使用if(window.frameElement)或if(window.location!== window.parent.location),但如果iframe src不在同一個域中所有現代瀏覽器在訪問父級時甚至將其與null進行比較時都會引發異常。

我完全失去了。

回答

2

您可能感興趣的編碼恐怖條目:We Done Been Framed。就這個話題提供有趣的技術討論,包括解決方案和框架破壞。

+0

不錯的文章。該文章中OP可能想要嘗試的代碼是:if(parent.frames.length> 0)top.location.replace(document.location); }雖然文章的要點是,不可能從JavaScript獲得100%的胸圍幀,並且最好的做法是從服務器端代碼通知用戶幀。 – mjhm 2010-11-14 23:01:43

+1

所以...你說的是我的回答是提供更多的方式,而不是提問者;) – Matt 2010-11-14 23:11:28

0

您可以在try-catch語句中包裝您的驗證(window.location!== window.parent.location/window.frameElement),您可以使用它來自己處理異常。

+0

那麼它不起作用 - 至少在Firefox 3.6.12。代碼不會拋出異常。 – sha1dy 2010-11-14 21:56:58

0

你爲什麼不嘗試一個函數以下

VAR元素= window.parent.document 如果(元素)的回報「是在父窗口中的」其他「是不是在一個父窗口」;

相關問題