从Facebook画布页面重定向到网站

时间:2011-08-23 07:53:58

标签: javascript facebook redirect facebook-javascript-sdk

有没有办法从我的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。

5 个答案:

答案 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故意禁用此功能。你要么必须留在画布上,打开一个弹出窗口(如果可能的话),或者只是创建一个供用户点击的链接。