2012-07-29 60 views
2

編輯問題RGD:JavaScript重定向頂級父頁

總結:

我有2個站點 siteA.com siteB.com

的iFrame屬於siteB.com 但我想允許siteA.com到iframe siteB.com頁面。然而,任何不是siteA或siteB.com將重定向到siteA.com

使用javascript,我如何檢查,考慮忽略www或沒有www(通配符),並且我的網站可能是siteA.com/漂亮的URL

我該怎麼做了檢查,並添加與JavaScript的安全性,任何隨機的網站沒有授權將導致window.top.location.href被重定向到siteA.com

感謝所有幫助,這裏新增:)

+0

這可能會幫助你http://stackoverflow.com/questions/326069/how-to-identify-if-a-webpage-is-being- loaded-inside-an-iframe-or-directly-into-t – bugwheels94 2012-07-29 08:39:11

+0

[Frame Buster Buster ... buster code needed]可能的重複(http://stackoverflow.com/questions/958997/frame-buster-buster-buster在分割()像分割('?')[0] – 2012-07-29 08:46:15

回答

2

類似的東西?:

if (window.top != window && !window.top.location.href.split('?')[0].split('#')[0].match('mysitedomain.com')) 
{ 
    window.top.location.href = window.location.href; 
} 

第一個檢查是確保您只在您的站點位於框架中時才運行此代碼。
第二個檢查是查看頂部框架(瀏覽器窗口)的url是否包含您的域。我們需要忽略查詢字符串/錨櫃面它看起來是這樣的:http://notmine.com/path/file.html?subframe=mysitedomain.com

這仍然會匹配:

的http://不是* mysitedomain.com * /路徑

在.match(...)中,可以包含h​​ttp://或https://。

更新回答您的編輯:

var topUrl = window.top.location.href.split('?')[0].split('#')[0]; 

if (window.top != window && !topUrl.match('siteA.com') && !topUrl.match('siteB.com')) 
{ 
    window.top.location.href = "siteA.com"; 
} 
+0

。我的錯。謝謝! – bugwheels94 2012-07-29 08:40:32

+0

@AnkitGautam之後使用[0] – 2012-07-29 08:41:48

+0

+1,但你也應該檢查散列網址 – bugwheels94 2012-07-29 08:43:08