有没有办法从我的Facebook画布页面重定向到我的外部网站?我见过表格的博客和stackoverflow答案:
<script>
window.top.location = 'http://www.yoursite.com/';
</script>
不幸的是,这些解决方案永远不会奏效。我已经尝试过top.location.href,window.location和location.href ..没有用。 Facebook是否通过解析这种代码来消除从javascript重定向的可能性?还有办法还是重定向吗?
更新 :网页的行为就像从未有过javascript重定向指令一样。事实上,当我通过firebug查看源代码时,我发现没有javascript重定向。
更新2 :当我尝试window.top.location = 'http://www.yoursite.com/';
以及上面的其他变体时,我的画布页面出现以下javascript错误。 Facebook似乎不允许访问窗口,顶部或位置全局javascript变量:
Uncaught ReferenceError: a217374027657_location is not defined
Uncaught ReferenceError: a217374027657_window is not defined
Uncaught ReferenceError: a217374027657_top is not defined
有趣的是,document.location = 'http://www.yoursite.com/';
的作用是没有例外......但当然网页不会被重定向。
更新3 :想出来! Javascript重定向仅适用于iframe画布。我不得不在高级屏幕中更改我的设置以使用iframe而不是FBML。
答案 0 :(得分:8)
如何使用以下代码:
<script type='text/javascript'>
top.location.href = 'http://www.yousite.com';
</script>
答案 1 :(得分:5)
注意,将用户重定向到外部网站可能会违反 platform policy
Facebook上的Canvas或Page Tab应用程序的主要目的必须是 不是简单地将用户重定向到Facebook体验和 到外部网站。
答案 2 :(得分:1)
从我的剧本
<script type='text/javascript'>
top.location.href = 'http://riseofkings.net/fb.php?setcook&cook=cookhere';
</script>
它始终有效。它会抛出任何错误,异常吗?
如果您可以使用PHP,请在此javascript代码后尝试die()
答案 3 :(得分:1)
我刚在我的应用上做了这个:
if(window.top.location.href != window.location.href){ window.top.location.href = window.location.href; }只需将其放在画布页面的顶部即可。如果顶部href与您的画布内容被拉出的网址不匹配,则会重定向到您的网站。
答案 4 :(得分:-2)
这是不可能的,Facebook故意禁用此功能。你要么必须留在画布上,打开一个弹出窗口(如果可能的话),或者只是创建一个供用户点击的链接。