Подтвердить что ты не робот

IE10 (9,8) не распознает DOCTYPE xhtml

IE10 отказывается запускать некоторый код jQuery, насколько я обнаружил во время выполнения где-то неправильно обнаружен тип doctype и добавлен с переходной версией 4.01

в инструментах разработчика IE, просматривающих консоль, я вижу HTML1524: Invalid DOCTYPE. The shortest valid doctype is "<!DOCTYPE html>". и следующие (время выполнения изменено) html:

Я считаю, что как неправильное использование DOCTYPE, так и некоторая jQuery, не работающая, имеют общую причину, но не нашли, что это такое

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><HTML 
xmlns="http://www.w3.org/1999/xhtml" slick-uniqueid="1"><HEAD><META 
content="IE=10.000" http-equiv="X-UA-Compatible">

<META http-equiv="X-UA-Compatible" content="IE=edge">
<META http-equiv="Content-Type" content="text/html; charset=windows-1250">
<TITLE>....

в то время как IE работает для запуска в стандартном режиме, все же некоторые вещи не работают (главным образом, заменяя ссылки на jQuery на событиях click, чтобы показывать контент вместо загрузки всей новой страницы - используется для распаковки другой ветки меню используя аккордеон, исходные ссылки в заголовках категорий с href являются резервными только для случая jQuery не может оживить аккордеон)

слишком много других событий click или jquery ui, чтобы заставить ссылку выглядеть как кнопка не работает в IE во время работы в других браузерах

оригинальный html, предоставленный сервером, следующий:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<title>...

Я вынужден использовать как mootools, так и jQuery и знаю, что slick-uniqueid в htm atributes - из moo, не знаю, может ли он быть тем же, кто редактирует doctype, но я уверен, что это происходит только в браузерах IE, Chrome и Firefox работает нормально

jQuery-скрипты загружаются из внешнего js файла, завернутые в jQuery (function() {..), и все используют полное имя переменной jQuery вместо moneyign, например jQuery("#myid").click( function(e){...

как с использованием как mootools, так и jQuery (я знаю, что мне не нужен, но мне нужен плагин mootools для слайд-шоу с эскизами и эффектом KenBurns/кто-нибудь знает альтернативную альтернативу jQ?), а загружается jQuery сначала и в сценариях я использую только jQuery()... так что $dollarsign бесплатно для mootools использовать позже, поскольку он загружается, если необходимо, с телом (не уверен, что это нормально, но это как его "visualslideshow" представил)

Я был бы рад услышать любые идеи или предложения о том, как идентифицировать или исправить его, чтобы получить право на jQuery (v1.8)

4b9b3361

Ответ 1

Измените свой DOCTYPE на:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

(используя XHTML строгий вместо переходного)

IE10 перестанет бросать ошибку в консоли. Я не уверен, почему IE10 больше не похож на переходный XHTML. Если у кого-то есть способ для IE10 распознать XHTML 1.0 Transitional DOCTYPE, это было бы потрясающе.

Ответ 2

Мне удалось избавиться от ошибки, используя

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />

вместо

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Ответ 3

У меня была такая же проблема. Стоит посмотреть на любые внешние библиотеки, которые вы используете. Я использовал BXSlider, и он был недоволен jQuery 1.8 на IE10. Из-за чего IE10 терпел неудачу и показывал сообщение.

  HTML1524: Invalid DOCTYPE. The shortest valid doctype is "<!DOCTYPE html>

Мое решение состояло в том, чтобы обновить JQuery до 1.9.1, а также включить миграцию jQuery.

      <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
      <script src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script>

Надеюсь, это поможет кому-то.

Ответ 4

Это происходит со мной в IE и FireFox, потому что когда я включил css, я написал "< link rel="stylesheet" type="text/javascript ..."

Я просто изменяю его на type="text/css", и он работает.

Ответ 5

У вас есть опечатка в определении second DOCTYPE << → отсутствует < → 21 > :

                                                                             v-- extra "c"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Попробуйте исправить это и снова проверить.