2010-06-16 16 views
5

Używam walidatora W3C XHTML do sprawdzania moich stron i pojawia się kilka błędów na stronach z FBML. Główną przyczyną takich błędów jest znak "&". Ponieważ wartości i atrybuty FBML są generowane w locie, nie mam możliwości prawidłowego zakodowania znaku przed jego wyświetleniem.Facebook: Nieprawidłowe oznaczenie na FBML

Pytanie: Czy istnieje sposób, aby poinformować serwis Facebook Connect o poprawnym renderowaniu znaku?

Dzięki.

Odpowiedz

7

spróbować umieścić kod Facebook w CDATA:

<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

Krótko mówiąc, nie tak daleko, jak wiem. Co gorsza, FB: * tagi nie zatwierdzić albo, nawet jeśli twój html tag wyglądać następująco:

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

Jeśli jest to ogromny problem dla Ciebie, może być w stanie uciec z umieszczaniem znaczników niezgodnych z XHTML we własnym elemencie iframe zgodnym z HTML-4.01, aby w zasadzie zmieść bzdury pod dywan.

To może być pomocne:

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

niektórych niemieckich facet pracował również na nim:

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

nadal nie rozwiązuje problemu ampersand. –

1

Oto jak się czuję ng to. Owiń wszystkie znaczniki fbml wewnątrz, a następnie użyj js, aby odkomentować kod fbml przy użyciu javascript. Herezje przykład:

Markup:

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

JS (jQuery wymagane):

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

To jest interesujące. Są lepsze sposoby na to, ale nie mogę nie wspomnieć, że to jest naprawdę interesujące. I to działa! –

Powiązane problemy