Кнопка «Нравится» в Facebook отображается в Firefox, но не отображается в IE

У меня есть кнопка «Нравится» на Facebook на моей странице с использованием тега XBFML. Я думаю, что код работает, потому что он работает в Firefox без проблем.

Но в IE 8 (работающем в режиме, совместимом с IE 7) кнопка вообще не отображается.

Если я переключу все это на версию iFrame кнопки «Мне нравится», все будет работать. Но когда я иду с тегом XBFML, это не работает.

Кто-нибудь сталкивался с подобным?


person CubanX    schedule 02.06.2010    source источник


Ответы (4)


Попробуйте добавить атрибут xmlns в HTML-документ для пространства имен FB:

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

Это еще один случай, когда Firefox слишком снисходителен по сравнению с IE.

person 0bj3ct.m3th0d    schedule 02.06.2010
comment
Я загружаю Facebook Like асинхронно и обнаружил, что добавление пространств имен напрямую (например, через $('html').attr('xmlns:fb', 'http://www....')) не работает. Я сейчас отлаживаю код Facebook, и они, кажется, используют document.namespaces для чтения пространств имен - и даже после того, как я добавил пространство имен через jQuery, document.namespaces['xmlns:fb'] возвращает undefined. - person ripper234; 03.10.2011

атрибут: xmlns:fb="http://www.facebook.com/2008/fbml" упоминается как "обязательный для использования" в документации Facebook Connect. Некоторые указатели здесь.

person Deb    schedule 06.07.2010

Я думаю, что у меня немного другая реализация, чем у вас, но та же общая проблема: не видеть мои социальные кнопки Facebook только в IE. Оказалось, что это произошло из-за того, что я разместил тег сценария Facebook внизу своей страницы. Решением было переехать

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

чтобы это было до того, как я вставил кнопку:

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

Затем кнопки начали появляться и в IE.

person pdub23    schedule 07.07.2011

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");
            }
        }
    }

НЕ помещайте это в функцию $(document).ready()!

person mana    schedule 09.01.2012