Facebook登录/喜欢在IE8上失败

时间:2010-09-21 09:17:04

标签: internet-explorer internet-explorer-8 facebook xfbml

我最近使用XFBML实现了Facebook登录按钮和Facebook“赞”按钮。您可以在http://colnect.com

上看到该网站

一切都适用于FireFox,Chrome,Opera和Safari浏览器。

但是,IE既没有显示“登录”或“喜欢”按钮,也没有错误消息。

有什么想法吗?

4 个答案:

答案 0 :(得分:7)

似乎我会成为那种回答自己希望能帮助某人的人。

要让Internet Explorer识别Facebook,您应该添加

xmlns:fb="http://www.facebook.com/2008/fbml"

到你的html标签,对我而言

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en">

我遇到的第二个问题是IE不支持Array.indexOf()所以这就是它的方法:

if(!Array.indexOf){
  Array.prototype.indexOf = function(obj){
          for(var i=0; i<this.length; i++){
              if(this[i]==obj){
                  return i;
              }
          }
      return -1;
  }
}

希望它有所帮助。

答案 1 :(得分:2)

我用这段代码解决了我的问题。其余的解决方案对我的情况不起作用。

<script>

    window.fbAsyncInit = function() {
        FB.init({
          appId  : '330984983742',
          status : true, // check login status
          cookie : true, // enable cookies to allow the server to access the session
          xfbml  : true  // parse XFBML
        });
    };

    (function() {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/<?php echo ($_SESSION["lang"]=="es")?"es_ES":"en_US"; ?>/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
        FB.XFBML.parse('fb-stuff'); 
    }());

</script>

我希望它会帮助别人。

答案 2 :(得分:0)

对我而言,这个技巧始终如一地将class='fb-like'添加到<fb:like>标记。

答案 3 :(得分:0)

对我来说,我需要FB Javascript SDK中描述的频道文件。我发布了对类似问题的回复 - 也许对你的情况也有帮助:

<fb:login-button> problems with IE8 (Internet Explorer) only