XHTML не отображается в IE6, 7, 8 или FF3.5.1 - но хорошо в Firefox 3.0.1 - PullRequest
0 голосов
/ 22 июля 2009

У меня есть XML-файл, который ссылается на XSL-файл (как у вас), который до недавнего времени генерировал совершенно приемлемый HTML-вывод независимо от браузера.

Новое требование снизилось до максимума для вывода XHTML для совместимости с другим продуктом. Хорошо, хорошо - я переработал свою таблицу стилей для создания (W3C Validated) XHTML.

Раньше я открывал свой XML-файл и прекрасно просматривал преобразованный вывод в IE и FF. Теперь я получаю все виды неприятностей. IE6, 8 и 8-в-IE7 режиме отображают полностью пустую страницу. Firefox 3.5.1 отображает только текстовые узлы, полностью лишенные форматирования. Firefox 3.0.1 отображает страницу (почти) нормально - кроме белой рамки вокруг страницы, и JavaScript не работает.

Кто-нибудь знает почему? Вот начало выходного файла XHTML:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC 
          "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:ftid="http://www.boeing.com/FTID-ML" 
      xmlns:rev="http://www.boeing.com/FTID-ML/Revision" 
      xmlns:xlink="http://www.w3.org/1999/xlink">

Ответы [ 4 ]

2 голосов
/ 22 июля 2009

Наличие объявления XML над DOCTYPE переводит IE6 в режим причуд, поэтому это объясняет, почему он не работает должным образом в IE6. Я не могу говорить за другие браузеры. Это может помочь показать нам еще немного кода.

1 голос
/ 22 июля 2009

Проблема, хотите верьте, хотите нет, была моим заглавным элементом.

<title />

не работает. IE бесится, теряет рассудок и ничего не отображает.

<title> </title>

вылечил проблему. Дополнительная информация: IE отлично справляется с объявлением XML вверху ...

1 голос
/ 22 июля 2009
  • Убедитесь, что ваш встроенный javascript / css находится в блоке CDATA (а не "закомментирован")
  • белая рамка вокруг страницы: XHTML не обрабатывает элемент html иначе. Вы должны установить html { background-color: #f5f5f5; }, а не body { background-color:#f5f5f5; }
  • проверьте ваш тип контента. старые IE вообще не поддерживают application/xhtml+xml, но хотят text/html
1 голос
/ 22 июля 2009

Убедитесь, что вы сообщаете правильный тип содержимого в ответе HTTP. Должно быть application/xhtml+xml

...