2012-01-01 20 views
23

Mam przycisk Facebook jak na moim miejscu i jako takie mają również atrybut xmlns:fb na metce <html>:Czy jest możliwe sprawdzenie atrybutu xmlns: fb (Facebook)?

<!DOCTYPE html> 
<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> 

Jednak, gdy uruchomiony moją stronę przez W3C walidator, otrzymuję te błędy:

Wiersz 2, Kolumna 61: Atrybut xmlns: fb tutaj niedozwolone.

Wiersz 2, Kolumna 61: Atrybut o nazwie lokalnej xmlns: fb nie jest możliwy do serializacji jako XML 1.0.

Linia 222, Kolumna 72: atrybut fb: like: układ nie jest możliwy do serializacji jako XML 1.0.

Linia 222, Kolumna 72: Atrybut fb: podobny: układ niedozwolony na elemencie a w tym miejscu.

Rozumiem, że za pomocą atrybutu xmlns:fb dodaje fb do nazw dokumentu, tak, że za pomocą dowolnego elementu <fb: jest prawidłowy. Czy tak nie jest? Czy jest to problem HTML5?

Mam również podobne błędy sprawdzania poprawności za pomocą przycisku Twitter, czy można je również naprawić?

Linia 223, kolumna 53: atrybut tw: via nie jest możliwy do przekształcenia w postaci XML 1.0.

Linia 223, Kolumna 53: Atrybut tw: przez niedozwolony element a w tym miejscu.

Odpowiedz

8

Nie ma możliwości sprawdzenia poprawności xmlns:fb za pomocą HTML5.

Można jednak użyć nowych atrybutów data-..., które zostały dodane przez Facebooka i są prawidłowe HTML5, zgodnie z opisem here.

Jest to przykład tego, jak można użyć tego rozszerzenia w HTML5 (zakładając cały kod jest w elemencie body):

<h3>Members</h3> 
<embed data-fb="login-button" data-show-faces="true" /> 
<h3>Recent activity</h3> 
<embed data-fb="activity" data-site="***" data-width="200" data-header="false" 
data-border_color="#fff" data-recommendations="false" /> 
<div id="fb-root"></div> 
<!-- the JavaScript API --> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<!-- the extention script from this article --> 
<script src="/scripts/fb.js"></script> 
<script> 
//<![CDATA[ 
FB.init({apiKey: '***', appId: '***', status: true, cookie: true, fbml5: true}); 
//]]> 
</script> 

byłoby to równoznaczne kod XHTML:

<h3>Members</h3> 
<fb:login-button show-faces="true" /> 
<h3>Recent activity</h3> 
<fb:activity site="***" width="200" header="false" 
border_color="#fff" recommendations="false" /> 
<div id="fb-root"></div> 
<!-- the JavaScript API --> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<!-- the extention script from this article --> 
<script src="/scripts/fb.js"></script> 
<script> 
//<![CDATA[ 
FB.init({apiKey: '***', appId: '***', status: true, cookie: true, fbml5: true}); 
//]]> 
</script> 
26

Lub możesz teraz użyć prefix mappings.

<!DOCTYPE html> 
<html lang="en" prefix="fb: http://www.facebook.com/2008/fbml"> 
+0

nie działa dla mnie, wciąż nie zatwierdzone html5 –

+0

Jakiego walidatora używasz? spróbuj http://html5.validator.nu –

+0

działa .. śmieszne mnie, nie usunąłem innych właściwości. Dzięki –

Powiązane problemy