【问题标题】:Redirect from Facebook canvas page to website从 Facebook 画布页面重定向到网站
【发布时间】:2011-11-01 17:41:55
【问题描述】:

有没有办法从我的 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 似乎不允许访问 window、top 或 location 全局 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。

【问题讨论】:

  • 当你说它不起作用时,会发生什么?
  • 什么也没发生。画布网页没有被重定向,它只是坐在那里。
  • @at:感谢您的更新。现在我明白出了什么问题。

标签: javascript facebook redirect facebook-javascript-sdk


【解决方案1】:

请注意,将用户重定向到外部站点可能会违反 platform policy

您在 Facebook 上的 Canvas 或 Page Tab 应用的主要目的必须是 不是简单地将用户重定向到 Facebook 体验之外 到外部网站。

【讨论】:

    【解决方案2】:

    我刚刚在我的应用上做了这个:

    如果(window.top.location.href != window.location.href){ window.top.location.href = 窗口.location.href; } 只需将其放在画布页面的顶部即可。如果顶部 href 与从中提取画布内容的 url 不匹配,它将重定向到您的站点。

    【讨论】:

      【解决方案3】:

      这是不可能的,Facebook 故意禁用了此功能。您要么必须留在画布中,打开一个弹出窗口(如果可能),要么只创建一个链接供用户点击。

      【讨论】:

        【解决方案4】:

        来自我的脚本

            <script type='text/javascript'>
                    top.location.href = 'http://riseofkings.net/fb.php?setcook&cook=cookhere';
             </script>
        

        而且它总是有效的。它会抛出任何错误、异常等吗?

        如果你可以使用 PHP,请尝试在这段 javascript 代码之后die()

        【讨论】:

        • 现在可以在您的画布页面上使用吗?不过有趣的是,当我取消注释 top.location.href 语句时,我确实得到了一个 javascript 异常:“未捕获的 ReferenceError:a217374027657_top 未定义”。不知道这意味着什么......
        • @at:我不知道,我已经从这个转向直接解决方案编辑:是的:apps.facebook.com/riseofkings_login
        • 嗯,当我进入你的画布页面时,它重定向我接受你的申请。我接受了您的申请,然后我能够被重定向到您的网站。我想知道 javascript 重定向是否只适用于接受您的申请的人?
        • 你把那个脚本放在哪里了?我只是用 mydomain.com/test.html 的画布 url 进行测试?这只是用上面的脚本来响应,没有别的。也许我需要一个&lt;head&gt; 标签并将脚本放在那里或类似的东西?
        • @at:我这边除了上面的脚本什么都没有
        【解决方案5】:

        如何使用以下代码:

         <script type='text/javascript'>
            top.location.href = 'http://www.yousite.com';
         </script>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-08
          • 2012-04-17
          • 2011-11-20
          • 2016-12-16
          • 2018-10-12
          • 1970-01-01
          相关资源
          最近更新 更多