]]>

Facebook FBML i walidacja W3C

2012-07-06 13:58 przez administrator

Widgety facebooka są dzisiaj niemal obowiązkowe na stronach internetowych czy sklepach www.
Niestety tagi <fb> nie są poprawnie walidowane przez korporację W3C. Jak wiadomo poprawna walidacja strony www jest pomocna przy pozycjonowaniu. Może się bowiem zdarzyć iż roboty indeksujące "wystraszą się" błędów poprawnej walidacji i opuszczą naszą stronę zanim na dobre zaczęły.

Rozwiązanie jest dość proste. Powodem dla którego tagi FBML nie są poprawnie walidowane jest fakt iż nie należą do specyfikacji XHTML Transitional. Facebook stworzył własne znaczniki.


Jak ukryć tagi facebooka przed walidacją.

Dokładniej rzecz ujmując ukryjemy je przed parserem XHTML, który nie uzna ich za znaczniki, a zwykły tekst.
Przystępujemy do pracy:

Kod:

<fb:like href="http://www.webmagic.pl" layout="button_count" show_faces="false" width="70" action="like" font="arial" colorscheme="light"></fb:like>


Należy wywołać za pomocą javascriptu w następujący sposób:

<script language="javascript" type="text/javascript">

document.write('<fb:like href="http://www.webmagic.pl" layout="button_count" show_faces="false" width="70" action="like" font="arial" colorscheme="light"></fb:like>');

</script>

Prawie się udało. Niestety javascript nie będzie wiedział co ma zrobić z "<".
Tym razem użyjemy tagu xml CDATA w połączeniu z komentarzem, aby walidator myślał iż mamy do czynienia z tekstem, a nie tagiem.


Efekt końcowy:

<script language="javascript" type="text/javascript">
//<![CDATA[

document.write('<fb:like href="http://www.webmagic.pl" layout="button_count" show_faces="false" width="70" action="like" font="arial" colorscheme="light"></fb:like>');

//]]>
</script>


Podsumowując.

Jeżeli chcesz użyć na stronie jakiegoś tagu FBML z poprawną walidacją HTML, wykonaj następujące czynności:

  • Zamieść swój kod FBML w javascripcie przy pomocy "document.write"
  • Kod javasrciptu owiń w znacznik CDATA z komentarzem.


To wszystko.

Wróć

Zobacz również