从iframe更改顶部窗口位置


Change top window location from iframe

你好,我想用php和javascript重定向我的Facebook应用程序页面到另一个应用程序页面

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

由于xss限制,如果iframe驻留在调用iframe的页面以外的另一个域中,则可以设置但不能读取top.location.href。如果你重定向到的页面有相同的域名,你将能够检查top.location.href。所以逻辑如果你的代码应该反向检查它是否可以访问top.location.href,如果不重定向。把它放在try. catch块中,以避免在访问top.location

时出现javascript错误。