Я отвечаю на свой вопрос.
Короткий ответ: это из-за ограничений браузера.
Если страница определена как XHTML некоторыми браузерами, только подмножество именованных символовсущности, разрешенные стандартом, поддерживаются для присвоения innerHTML.
В частности, в моем тестировании, похоже, что в Mozilla и Webkit, только "
, &
, <
и >
разрешены в innerHTMLназначение.
Мой тестовый код доступен здесь: https://gist.github.com/673901
XHTML - «лучшая» и более чистая версия HTML, переформулированная в XML.XHTML 1.1 должен был стать преемником и будущим HTML.Однако это вряд ли произойдет с принятием HTML5.
В отличие от HTML, для которого требуется выделенный анализатор HTML, документ XHTML может быть проанализирован обычным анализатором XML.По крайней мере, в mozilla и webkit XHTML и HTML проходят разные пути кода.Понятно, что путь к коду HTML - это то место, куда направляются основные усилия, а также лучше тестируется, потому что там гораздо больше документов HTML, чем XHTML.
Стоит отметить, что то, распознается ли документ как XHTML, определяетсяэффективный тип MIME, а не содержимое документа.
Вывод таков: если вы работаете с XHTML, убедитесь, что преобразовали именованные сущности в числовые (например,
->  
), прежде чем присваивать.innerHTML.