0

我正在将 Facebook Like 按钮添加到我的网站。

我已将以下内容添加到我的 aspx 页面:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
      FB.init({
          appId: 'ID',
          status: true,
          cookie: true,
          xfbml: true  // parse XFBML
      });
  };

  (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>
</script>

这要html标记:

xmlns:fb="http://www.facebook.com/2008/fbml"   xmlns:og="http://ogp.me/ns#"  prefix="og: http://ogp.me/ns#" 

这是我喜欢的:

<fb:like  send="false" layout="standard" width="350" style="height:22px;" show_faces="false" action="like" colorscheme="light"></fb:like>

我确实为 OpenGraph 添加了元标记。

在所有浏览器上对其进行测试时,它都可以正常工作。当未登录 Facebook 并且您需要登录才能喜欢该项目时,会出现一个弹出窗口,并在您输入正确的用户名和密码后关闭。

但在 IE (9) 中会出现一个窗口,在我输入用户名和密码后,它会重定向到此链接: http: //www.facebook.com/connect/connect_to_external_page_reload.html

这是一个空白页面,之后什么也没有发生,它没有关闭,我不能喜欢任何项目。

即使我在点击喜欢之前已经在 IE 上登录了 Facebook,我仍然会得到同样的东西来输入用户名和密码。

我错过了什么吗?

4

2 回答 2

1

在 IE 中让一切为我工作需要一整天。最后这就是我所做的。

  1. 在我页面的开头,我添加了以下内容

     <html lang="en" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#">
    
  2. 我使用 XFBML 格式添加了 facebook like 和 send 按钮(由于某种原因,我无法让 HTML 5 版本工作) 注意:我还必须单独添加它们。出于某种原因,当我不使用 FB:Send 并使用 FB:like send="true" 时,它在 IE 10 中不起作用。如果您只想要类似的东西,请不要添加 FB:Send 行。

     <fb:like href="http://www.domain.com" send="false" layout="button_count" width="60" show_faces="false" action="like" font=""></fb:like>
    
     <fb:send href="http://www.domain.com"></fb:send>
    
  3. 我将脚本添加到页面中

    <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";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk')); </script>
    
  4. 我添加了 channelUrl 以确保它在 IE 8 和 9 中工作

    <script>
    window.fbAsyncInit = function () { //fbAsyncInit prevents call of FB.getLoginStatus before the SDK is loaded and/or initialized
        FB.init({
            appId: "You app ID here bunch of digits",
            status: true, // check login status
            cookie: true, // enable cookies to allow server to access session,
            xfbml: true, // enable XFBML and social plugins
            oauth: true, // enable OAuth 2.0
            channelUrl: 'http://channel.html' //custom channel
        });
    };
    

  5. 创建了 Channel.html 文件,其中包含以下内容

    <script src="//connect.facebook.net/en_US/all.js"></script>
    
于 2013-09-24T15:37:52.467 回答
0

我面临着同样的问题。我发现在 IE9 中禁用保护模式设置可以解决问题。您可以在 Internet 选项 -> 安全 -> Internet -> 启用保护模式复选框中找到它。让我知道这是否有帮助。

于 2012-10-30T14:40:57.003 回答