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)
Ответы
Ответ 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">
Попробуйте исправить это и снова проверить.