web-dev-qa-db-fra.com

IE10 (9,8) ne reconnaît pas DOCTYPE xhtml

IE10 refuse de lancer du code jQuery, pour autant que j'ai trouvé au moment de l'exécution, un doctype est incorrectement détecté et précédé de la version 4.01 transitoire

dans les outils de développement d'IE qui consulte la console, je vois HTML1524: Invalid DOCTYPE. The shortest valid doctype is "<!DOCTYPE html>". et suivants (exécution modifiée) html:

Je crois que les deux types d'utilisation abusive de DOCTYPE et de jQuery qui ne fonctionnent pas ont une raison commune , mais je n'ai pas trouvé ce que c'était.

<!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>....

alors que IE indique de fonctionner en mode standard, certaines choses ne fonctionnent toujours pas (principalement en remplaçant les liens par les événements de clic de jQuery pour afficher le contenu au lieu de charger une nouvelle page - utilisée pour décompresser une autre branche de menu à l'aide de l'accordéon , les liens originaux dans les en-têtes de catégorie avec href ne sont utilisés que si jQuery ne parvient pas à animer un accordéon)

trop d'autres événements de clic ou de fonctions jquery ui pour que le lien ressemble à un bouton ne fonctionnent pas dans IE tout en travaillant dans d'autres navigateurs

Le code HTML d'origine fourni par le serveur est le suivant:  

<!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>...

je suis obligé d'utiliser mootools et jQuery et de savoir que le slick-uniqueid dans htm atributes provient de moo, ne sait pas si c'est peut-être le même qui édite le doctype, mais je suis sûr que cela se produit uniquement dans les navigateurs IE, Chrome et Firefox fonctionne correctement

les scripts jQuery sont chargés à partir d'un fichier js externe, encapsulés dans jQuery (function () {.. et utilisent tous le nom de variable complet jQuery au lieu de dollarsign, par exemple jQuery("#myid").click( function(e){...

comme utilisant à la fois mootools et jQuery (je sais que je ne devrais pas mais ai besoin de certains plugins mootools pour le diaporama avec des vignettes et effet KenBurns/quelqu'un sait alternative jQ alternative ?? /) et jQuery est chargé en premier et dans les scripts que j'utilise seulement jQuery () ... si $ dollarsign est gratuit pour mootools à utiliser plus tard car il est chargé juste si nécessaire, avec le corps (pas sûr que ce soit ok mais c'est comme ça que 'visualslideshow' l'a présenté)

Je serais heureux d'entendre des idées ou des suggestions sur la façon de l'identifier ou de le corriger pour que jQuery fonctionne correctement (v1.8)

29
Peminator

Changez votre DOCTYPE en:

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

(en utilisant XHTML strict au lieu de transition)

IE10 cessera de générer l'erreur dans la console. Je ne suis pas sûr de savoir pourquoi IE10 n'aime plus le XHTML de transition. Si quelqu'un avait un moyen pour IE10 de reconnaître le DOCTYPE de transition XHTML 1.0, ce serait génial.

15
userx

J'ai pu me débarrasser de l'erreur en utilisant 

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

au lieu de

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
5
james31rock

J'ai eu le même problème. Cela vaut la peine de regarder toutes les bibliothèques externes que vous utilisez. J'utilisais BXSlider et jQuery 1.8 sur IE10 ne me convenait pas. En raison de laquelle IE10 échouait et montrait un message. 

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

Ma solution consistait à mettre à niveau mon JQuery vers la version 1.9.1 et à inclure également jQuery migrate.

      <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>

J'espère que ça aide quelqu'un. 

3
Invincible

Vous avez une faute de frappe dans votre seconde première définition DOCTYPE, le W3C manque un a une c supplémentaire:

                                                                             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">

Essayez de résoudre ce problème et testez à nouveau.

0
Ast Derek

Cela m’arrive dans IE et FireFox, car lorsque j’ai inclus le css j’ai écrit "< link rel="stylesheet" type="text/javascript ..."

je viens de le changer pour type="text/css" et cela fonctionne.

0
user2584478