2012-07-29 62 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