Вот решение не обменивать доктайп:
Как было предложено zerkms, добавив «фб» пространства имен применяется только для «Флавио Бриаторе:» атрибутов. Атрибут «свойство» метатега остается недопустимым XHTML.
Как вы знаете, Facebook основывается на соблюдении RDFa, так что вы можете использовать следующую доктайп:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
Использование RDFa приносит больше проблем, чем простое исправление выпуска FB в большинстве случаев, хотя.
как предложено _timm, динамическое создание метатегов в dom не имеет никакого смысла. Одним из основных применений этих мета-тегов fb является разбор FB-бота целевой страницы «share» или «i like» (страница действия) для предоставления пользовательских названий, изображений и ярлыков привязки для автобизнеса facebok wall post. Учитывая этот факт и учитывая тот факт, что facebook, безусловно, использует простой выбор страницы для чтения в поставляемом html-ответе без какой-либо возможности разбора связанного мета-тега с помощью javascript, предполагаемая функциональность просто терпит неудачу.
Теперь существует довольно простое исправление, обеспечивающее компромисс между проверкой XHTML и успешным анализом на facebook: оберните метаданные facebook в комментариях html. В обход парсера w3c и facebook все еще распознает метатеги, поэтому он игнорирует комментарий.
<!--
<meta property="og:image" content="myimage.jpg" />
<meta property="og:title" content="my custom title for facebook" />
-->
У меня есть решение. Просто оберните теги в JS и document.write. http://nerdramblings.tumblr.com/post/3213578636/html5-and-facebooks-fbml J. –
user1137834