2012-03-09 3 views
5

У Firefox есть определенный допуск при рендеринге HTML. Это означает, что даже если закрывающий тег отсутствует, HTML будет отображаться так, как будто все в порядке. Этот аспект толерантности особенно важен, когда вы используете JavaScript для управления или добавления контента на текущей странице.Отключить перенос (или включить строгость) в Firefox при рендеринге HTML

Поскольку я использую Firefox в качестве основного браузера для тестирования/разработки, меня неоднократно беспокоило такое поведение, результатом которого является потеря функциональности в «более строгих» браузерах. Например, тот же код в Microsoft Internet Explorer не смог получить какой-либо видимый результат из-за упомянутого отсутствующего тега в добавленном контенте.

Теперь вопрос заключается в том, есть ли способ сообщить Firefox о том, чтобы быть более строгим в отношении принятого HTML и сбой вместо «угадывания исправления» для него (особенно, когда HTML добавляется через JavaScript)?

PS: Я пробовал играть с DOCTYPE, но результаты были одинаковыми.

+1

Я думаю, что firefox строго для XTHML (с правильным doctype) – Aprillion

+0

Можете ли вы показать пример файла, который был отформатирован Firefox Firefox, но разрывается (до точки, не отображающей ничего) в IE? Мой опыт заключается в том, что ошибки, такие как отсутствующие конечные теги, обрабатываются во всех основных браузерах более менее одинаковыми. Конечно, разные браузеры обрабатывают ошибки по-разному, но обычно это не так. –

+0

@MrLister будет работать над этим и обновить вопрос – Unode

ответ

1

Все парсеры в некоторой степени прощают. Большинство основных сайтов имеют ошибки (не то, что это делает его простительным, просто говоря). Если вы разрабатываете приложение с прикрепленным отладчиком, вы быстрее поймете ошибки скрипта. Я также поймаю ошибки скрипта, используя minifier в моем процессе сборки (который не сможет справиться с серьезными проблемами синтаксиса). Я верю свою разметку HTML, используя предупреждения Visual Studio 2010 в режиме реального времени (которые не всегда идеальны) и периодически используют службу валидатора w3.

Для выбора браузера я обычно развиваюсь по всем направлениям; за один сеанс я буквально могу переключаться между режимами IE7/8/9, Chrome и Firefox. Safari и Opera обычно работают, если вышеупомянутые браузеры покрыты. Таким образом, я не слишком далек от ошибочного пути.

BTW, DOCTYPE Важна (даже если это не всегда так).

+0

Как вы проверяете HTML, который собран в JavaScript? Он не существует до исполнения ... – Unode

+0

@Unode - хороший вопрос. Я полагаюсь в основном на структуру (например, jQuery) для создания хорошо сформированной разметки (хотя она все еще может быть недопустимой, например, незаконно вложенные теги). Если бы я генерировал большую разметку, я бы, вероятно, сбросил ее в окно консоли до того, как браузер отформатировал/переработал ее. Затем я бы визуально осмотрел его или вставил его в валидатор. Теперь, когда вы упомянули об этом, более элегантный способ сделать это будет приятным. –

+0

@Unode в Firefox, выберите все, щелкните правой кнопкой мыши + «Показать источник выбора» покажет сгенерированный контент! –

1

Я обнаружил, что лучше всего просто сломать и выполнить основную работу в IE.

Если вы используете хороший доктайп (<! DOCTYPE HTML >) и установить X-UA-совместимый заголовок в режим IE8, дополнительная работа, которую вы должны сделать, чтобы сделать приложение работает/хорошо в других браузерах выглядят минимален ,

+0

Работа в основном с IE - это сложное решение, поскольку Windows не является средой разработки.Я не был знаком с х-ua-совместимым заголовком, кажется черной магией :) – Unode

2

Не используйте браузеры для проверки своего HTML; они очень не предназначены для этого. Используйте действительный валидатор, например the W3C's validator. Там appear to be много расширений Firefox, которые будут проверять страницу с помощью щелчка или автоматически, хотя я не знаком с ними, так как я не использую Firefox в качестве основного браузера.

+0

даже у Notepad ++ есть плагины для этого, например. TextFX> 'TextFX HTML Tidy' – Aprillion

+0

HTML VALIDATOR http://users.skynet.be/mgueury/mozilla/ является хорошим валидатором – Variant

+0

Проблема в том, что если HTML обрабатывается с помощью Javascript,« исходный код »больше не является плоский файл и является частью DOM в браузере. В этом случае допущение уже имело место, и любая проверка в браузере не смогла идентифицировать ошибки после JavaScript. Я использую расширение @Variant, и оно имеет «Validate after JavaScript manipulation», но оно может найти только подмножество ошибок, которые в некоторых условиях оказались недостаточными. – Unode

Смежные вопросы