2010-06-02 6 views
9

Tôi có nút like trên trang của mình bằng cách sử dụng thẻ XBFML. Tôi nghĩ rằng mã này đang hoạt động, vì nó hoạt động trong Firefox mà không có vấn đề gì.Nút thích trên Facebook hiển thị trong Firefox nhưng không hiển thị trong IE

Nhưng trong IE 8 (chạy ở chế độ tuân thủ IE 7), nút không hiển thị chút nào.

Nếu tôi chuyển tất cả sang phiên bản iFrame của nút tương tự, tất cả đều hoạt động. Nhưng khi tôi đi với thẻ XBFML nó không hoạt động.

Bất cứ ai chạy vào bất cứ điều gì như thế này?

Trả lời

18

Hãy thử thêm các tính xmlns vào tài liệu HTML cho namespace FB:

xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" 

Đây là một trường hợp Firefox được quá khoan dung vs IE.

+0

Cảm ơn, điều này đã có tác dụng! – CubanX

+0

hoạt động hoàn hảo –

+1

Tôi đang tải Facebook Giống như không đồng bộ và nhận thấy rằng việc thêm các không gian tên trực tiếp (ví dụ: thông qua '$ ('html'). Attr ('xmlns: fb', 'http: // www ....')') không hoạt động. Tôi đang gỡ lỗi thông qua mã của Facebook ngay bây giờ và họ dường như sử dụng 'document.namespaces' để đọc các không gian tên - và thậm chí sau khi tôi thêm không gian tên thông qua jQuery,' document.namespaces ['xmlns: fb'] 'returns' undefined' . – ripper234

3

thuộc tính: xmlns: fb = "http://www.facebook.com/2008/fbml" được đề cập là "phải được sử dụng" trong tài liệu Kết nối Facebook. Some pointers here.

+0

+1 cho liên kết và giải thích đơn giản – Leftium

1

Tôi nghĩ rằng tôi có một triển khai hơi khác so với bạn, nhưng vấn đề chung chung của việc không nhìn thấy các nút xã hội Facebook của tôi chỉ trong IE. Hóa ra đó là vì tôi đã đặt thẻ tập lệnh Facebook ở cuối trang của tôi. Giải pháp là để di chuyển

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 

để nó là trước khi tôi chèn nút:

<fb:like href="" send="true" layout="button_count" width="350" show_faces="true" font=""></fb:like> 

Sau đó, các nút bắt đầu xuất hiện trong IE là tốt.

0
if(document.namespaces) { 
    //IE 
    document.namespaces.add("fb", "http://ogp.me/ns#"); 
    document.namespaces.add("og", "http://ogp.me/ns/fb#"); 

    if (typeof(console) != 'undefined' && console) { 
     console.log("IE: OG and FB NameSpace added"); 
    } else { 
     //Other Browsers 
     var htmlRoot = jQuery(jQuery("html").get(0)); 
     if(typeof(htmlRoot.attr("xmlns:fb")) == "undefined") { 
      htmlRoot.attr("xmlns:og",'http://ogp.me/ns#'); 
      htmlRoot.attr("xmlns:fb",'http://ogp.me/ns/fb#'); 
      if (typeof(console) != 'undefined' && console) { 
       console.log("OG and FB NameSpace added"); 
      } 
     } 
    } 

KHÔNG đặt hàm này vào hàm $ (document) .ready()!