从iframe更改顶部窗口位置

Imm*_*mmo 4 html javascript php 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>";
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

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应用程序iFrame重定向没有任何问题?

Pea*_*vey 6

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

  • @pXdty:XSS = http://en.wikipedia.org/wiki/Cross-site_scripting他所谈论的限制被称为同源策略,http://en.wikipedia.org/wiki/Same_origin_policy (2认同)