Добавление типа документа без уничтожения текущей функциональности - PullRequest
0 голосов
/ 07 сентября 2010

Мне пришлось переназначить какой-то старый код для срочной работы, и, хотя с этим кодом QA все в порядке, оказывается, что не объявлен тип документа. Когда я добавляю тип документа, он нарушает дизайн в IE. В идеале, я мог бы объявить любой предполагаемый тип документа, когда его не существует, но не знаю, возможно ли это. Есть ли способ, которым я могу объявить тип документа без изменения поведения, создаваемого страницей, без объявленного типа документа?

Ответы [ 3 ]

1 голос
/ 07 сентября 2010

Без doctype IE покажет страницу в режиме quirks .Чтобы IE оставался в режиме причуд с типом документа, вы можете добавить комментарий (<!-- -->) перед типом документа.

Редактировать: если проблемы возникают только из-за IE6, пролог XML (<?xml version="1.0" encoding="utf-8"?>) сохранит егов режиме причуд.

Редактировать 2: на самом деле множество типов документов , которые будут поддерживать IE в режиме причуд.Вы должны быть в состоянии найти тот, который вы можете проверить.

0 голосов
/ 07 сентября 2010

Я был в подобной ситуации раньше. Моя рекомендация будет заключаться в том, чтобы запустить ваш HTML через инструмент проверки HTML, пока вы делаете это. Мой любимый вот этот:

http://validator.w3.org/

Существует также плагин Firefox, если вам нужно пройти аутентификацию или использовать какой-то другой механизм для доступа к странице (и этот сайт не может получить прямой доступ к вашему сайту).

Если описанная вами «функциональность» на самом деле является одной из многих недокументированных функций (ошибок) IE, вы не сможете сделать ваши стандарты HTML совместимыми и продолжать работать. Вполне вероятно, что у вас есть несколько нестандартных фрагментов кода, и обработка ошибок, специфичная для IE, - это то, что вообще заставляет вашу страницу функционировать. Различные браузеры по-разному обрабатывают условия ошибок (поскольку по определению условия ошибок выходят за рамки типа документа).

Чтобы повторить, попробуйте сделать так, чтобы ваш HTML прошел какую-то проверку, а затем подумайте о добавлении функциональности обратно. Мой опыт показал, что ошибки обычно приводят к подобным проблемам, которые вы описываете.

Это правило № 1, с которым я столкнулся при веб-разработке. Страница должна быть подтверждена для определенного типа документа.

Удачи!

-Брайан Дж. Стинар-

0 голосов
/ 07 сентября 2010

Это невозможно, потому что он изменит режим совместимости на стандартный режим (при условии, что вы используете что-то вроде XHTML Transitional, HTML 4 Strict или HTML 5), и есть немало несоответствий, особенно в IE. Тебе придется все исправить или нанять кого-нибудь еще.

...