从iframe更改顶部窗口位置

时间:2011-08-07 13:49:06

标签: php javascript html facebook

您好我想使用php和javascript将我的Facebook App页面重定向到另一个应用页面

我有

echo "<script type='text/javascript'>
if(window.top.location.href.toLowerCase().indexOf('http://apps.facebook.com/app1/') != -1) {
    window.top.location.href = 'http://apps.facebook.com/app2/2/';
    alert("Done");
}
else
   alert(window.top.location.href); 
</script>";

但是我收到了一个错误:

Unsafe JavaScript attempt to access frame with URL http://apps.facebook.com/myapp/?ref=bookmarks from frame with URL http://mydomain.com/?ref=bookmarks. Domains, protocols and ports must match.

是否可以毫无问题地从Facebook Application iFrame重定向?

1 个答案:

答案 0 :(得分:6)

由于您可以设置XSS-resrictions,但如果您的iframe位于另一个域而不是调用iframe的页面上,则无法读取top.location.href。如果您重定向到的页面具有相同的域名,则可以检查top.location.href。所以逻辑是你的代码应该反过来检查它是否可以访问top.location.href并且如果不重定向。将它放在try..catch块中以避免访问top.location时出现javascript错误