Facebook Like按钮无法在IE8或IE9中运行

时间:2011-09-23 15:08:19

标签: facebook-like

我现在已经对这个问题感到震惊了一天多了,我终于发布了一个问题,因为我无法弄明白,也无法从遇到同样问题的人那里找到任何信息。

这些Like按钮在Chrome,Firefox,IE7中运行良好,但不适用于IE8或IE9。

你们中的任何一位Facebook专家都知道这里会发生什么吗?这些按钮在生产中运行良好。

但是对于这个页面,在IE8& IE9,如果你没有登录到Facebook,你会弹出一个提示你登录的弹出窗口。成功登录后,你被转发到(引用你的网址,而不是我的网址): http://www.facebook.com/connect/connect_to_external_page_widget_loggedin.php?social_plugin=like&external_page_url=http%3A%2F%2Fwebhooks.digitas.com%2Flike.html#=

如果您已经登录,请直接访问此网址。正如您所看到的,页面永远不会完成它应该做的任何事情。

我只是不明白按钮在制作中如何工作,而不是在这个测试页面中.....

我的测试页面包含3个相似的按钮,直接来自类似按钮代码生成器page

<!doctype html> 
<html xmlns:fb="https://www.facebook.com/2008/fbml">
<head>
</head>
<body>
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>

    <div class="fb-like" data-href="http://webhooks.digitas.com/like.html" data-send="false" data-layout="button_count" data-width="200" data-show-faces="false"></div>

    <fb:like href="http://webhooks.digitas.com/like.html" send="false" layout="button_count" width="200" show_faces="false"></fb:like>

    <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwebhooks.digitas.com%2Flike.html&amp;send=false&amp;layout=button_count&amp;width=200&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:200px; height:21px;" allowTransparency="true"></iframe>

</body>
</html>

测试页面位于http://webhooks.digitas.com/like.html

我还使用另一种加载Facebook JS SDK的方法创建了另一个page,该方法目前适用于我们的生产网站:

<script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({ appId: '168861203149296', status: true, cookie: true, xfbml: true });
    };

    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
    } ());

</script>

1 个答案:

答案 0 :(得分:0)

您需要做两件事来帮助解决问题。

1)在FB.init中你应该设置ChannelUrl。 2)在您的网络服务器发送的标头中,您必须指定P3P标头。请参阅此处了解如何实施:http://www.hanselman.com/blog/TheImportanceOfP3PAndACompactPrivacyPolicy.aspx

相关问题