Предполагая, что вы хотите использовать свой XHTML в качестве text/html
типа контента, вы вправе удалить декларацию XML, потому что если вы этого не сделаете, IE6 перейдет в режим причуд.
Переопределение writeXMLDeclaration()
, как предлагает MJB, выглядит хорошим способом сделать это.
Но вы должны знать, что вы можете решить другие проблемы, используя XML-сериализатор и передавая результат как text/html
.
Скорее всего, в результате будет получен тег, подобный следующему: <script src="myscript.js" />
. Браузеры (кроме Safari) не будут воспринимать это как тег самозакрывающегося скрипта, а как тег начала скрипта, и все последующее будет рассматриваться как часть скрипта и не будет отображаться браузером.
Вам, вероятно, потребуется переопределить ваш сериализатор, чтобы сделать его доступным для разрешения HTML. Я предлагаю переопределить функцию writeEmptyElementTag()
, и для всех элементов с именами , а не в списке "area", "base", "basefont", "bgsound", "br", "col", "command", "embed", "frame", "hr", "isindex", "image", "img", "input", "keygen", "link", "meta", "param", "source", "spacer" and "wbr"
, вызовите writeStartTag()
, а затем writeEndTag()
вместо поведения по умолчанию.
Наконец, если бы я поместил тег XML
до моего DOCTYPE, это значит, что я
не нужно указывать <meta
charset="UTF-8" />
в моем HTML-заголовке?
Нет, это не так. При использовании в качестве text/html
объявление XML просто игнорируется браузерами, поэтому вам все равно придется предоставлять кодировку символов другими способами, либо метатегом, либо в заголовках HTTP.