Можно ли проверить атрибут xmlns: fb (Facebook)? - PullRequest
23 голосов
/ 02 января 2012

У меня на сайте есть кнопка «Мне нравится» на Facebook, и поэтому в теге <html> есть атрибут xmlns:fb:

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

Однако, когда я запускаю свой сайт через валидатор W3C, я получаю следующие ошибки:

Строка 2, столбец 61: Атрибут xmlns: fb здесь не разрешен.

Строка 2, столбец 61: атрибут с локальным именем xmlns: fb не сериализуем как XML 1.0.

Строка 222, столбец 72: Атрибут fb: like: макет не сериализуем как XML 1.0.

Строка 222, столбец 72: Атрибут fb: like: макет не разрешен для элемента a в данный момент.

Насколько я понимаю, использование атрибута xmlns:fb добавляет fb к пространству имен документа, поэтому использование любого элемента <fb: является допустимым. Разве это не так? Это проблема HTML5?

У меня также есть похожие ошибки проверки с помощью кнопки Twitter, можно ли их исправить?

Строка 223, столбец 53: Атрибут tw: via не сериализуем как XML 1.0.

Строка 223, столбец 53: Атрибут tw: через элемент a в данный момент не разрешен.

Ответы [ 2 ]

29 голосов
/ 17 декабря 2012

Или теперь вы можете использовать сопоставления префиксов .

<!DOCTYPE html>
<html lang="en" prefix="fb: http://www.facebook.com/2008/fbml">
8 голосов
/ 02 января 2012

Нет способа проверить xmlns:fb с HTML5.

Однако вы можете использовать новые data-... -атрибуты, которые были добавлены Facebook и являются действительными HTML5, как описано здесь .

Это пример того, как вы можете использовать это расширение в HTML5 (предположим, что весь код находится в элементе 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>

Это будет эквивалентный код 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...