2010-06-16 6 views
5

Ich benutze den W3C XHTML Validator, um meine Seiten zu überprüfen, und ich erhalte einige Fehler auf Seiten mit FBML. Der Hauptgrund für solche Fehler ist das Zeichen "&". Da FBML-Werte und -Attribute im laufenden Betrieb erzeugt werden, habe ich keine Möglichkeit, das Zeichen vor der Anzeige korrekt zu codieren.Facebook: Ungültige Markierung auf FBML

Frage: Gibt es eine Möglichkeit, Facebook Connect zu verständigen, um die Markierung richtig zu machen?

Danke.

Antwort

7

Versuchen Sie, die Facebook-Code in CDATA zu setzen:

<script type="text/javascript"> 
/* <![CDATA[ */ 
document.write('<fb:login-button length="long" size="large" show-faces="true" perms="" onlogin="window.location=\'<?=current_url()?>\'"></fb:login-button>'); 
/* ]]> */ 
</script> 
2

Kurz gesagt, nicht so weit ich weiß. Erschwerend kommt hinzu, die fb: * Tags bestätigen auch nicht, auch wenn Sie Ihre HTML-Tag wie folgt aussehen:

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

Wenn dies ein großes Problem für Sie, Sie könnten in der Lage sein, wegzukommen mit nicht-XHTML-konformem Markup in seinen eigenen HTML-4.01-strikten iframe, um den Mist im Grunde unter den Teppich zu kehren.

Dies kann hilfreich sein:

http://wiki.developers.facebook.com/index.php/Facebook_Platform_for_Mobile:_XHTML

Einige Deutsch Kerl arbeitete auch an sie:

http://translate.google.com/translate?js=y&prev=_t&hl=en&ie=UTF-8&layout=1&eotf=1&u=http%3A%2F%2Fwww.ka-mediendesign.de%2Fblog%2Ffbml-in-xhtml-neue-version%2F&sl=de&tl=en

+0

Immer noch nicht kaufmännisches Problem nicht lösen. –

1

So bin ich doi ng es. Wickeln Sie alle fbml-Tags um und verwenden Sie js, um den fbml-Code einfach mit Javascript auskommentieren. Heres ein Beispiel:

Markup:

<P class="fbreplace" style="display: none;"> 
    <!-- FBML 
     <fb:like layout="standard" show_faces="false" colorscheme="light"></ fb: like> 
    -> 
</ p> 

JS (JQuery erforderlich):

$(document).ready(function() { 
    $(".fbreplace").html.replace(/<!-- FBML /g, ""); 
    $(".fbreplace").html.replace(/ -->/g, ""); 
    $(".fbreplace").style.display = "block"; 
}); 
+0

Das ist interessant. Es gibt bessere Möglichkeiten, es zu tun, aber ich kann einfach nicht anders, als zu sagen, dass das wirklich interessant ist. Und es funktioniert! –

Verwandte Themen