Несколько ошибок XML при использовании Facebook JS SDK со строгим xhtml - PullRequest
1 голос
/ 10 февраля 2011

Я пытаюсь настроить несколько похожих кнопок для проекта. Эти кнопки находятся внутри слайд-шоу jquery с Galleria Aino и позволяют вам «лайкать» каждый отдельный слайд. Я использую строгий документ xHTML, и хотя в Firefox (и Firebug) все кажется нормальным, но в инспекторе WebKit я получаю следующее:

   XML self-closing tag syntax used on <fb:like>. The tag will not be closed.
   [The HTML that caused this error was generated by a script.] XML self-closing tag syntax used on <fb:like>. The tag will not be closed.

Я получаю один из них на каждом слайде, поэтому есть 28 ошибок. Глядя на это, обнаружил, что некоторые, кажется, заключают fb: like во что-то вроде этого:

<script type="text/javascript">
//<![CDATA[
document.write('<fb:like href="<?php echo "http://www.site/image-".$image_id ;?>" width="260" height="80" show_faces="false" />');
//]]>
</script>

Выше все еще работает в Firefox, но не в Safari . Инспектор говорит:

26 XFBML tags failed to render in 30000ms.

Более того, чтобы кнопки, подобные Facebook, работали с плагином Galleria Jquery, у меня есть пользовательская функция, которая перезагружает только кнопку, похожую на Facebook, касающуюся фактического слайда, который кратковременно появляется при загрузке слайда:

[...]
extend: function(options) {
       // listen to when an image is shown
       this.bind(Galleria.IMAGE, function(e) {
            number = e.index + 1;
        tag = $('.galleria-info-description .info-box-'+number).find('.btn_fb');
    $(tag).each(function() {
            FB.XFBML.parse( this );
        });
    });
}

Эта вещь становится все более сложной и действительно не знаю, кто вызывает проблему! Надеюсь, что кто-то может помочь или задать правильные вопросы!

Ответы [ 3 ]

0 голосов
/ 10 апреля 2011

Попробуйте использовать HTML5 вместо , это не так строго, как XHTML и особенно строго XHTML. XHTML все равно мертв.

0 голосов
/ 10 апреля 2011

Добавьте этот атрибут в тег <html>:

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

Если это не сработает, вы можете попробовать создать кнопки в форме iFrame вместо использования тегов XFBML.

0 голосов
/ 10 февраля 2011

Код, который вы пытаетесь использовать здесь, является частью Open Social DTD. XHTML Strict не может проанализировать этот код, он не является частью спецификации и поэтому недопустим.

Ознакомьтесь с документацией для Facebook Open Social и вы увидите, что документ должен быть помечен совершенно другим DTD.

...