29 votes

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

IE10 refuse de lancer certains codes jQuery, d'après ce que j'ai trouvé. au moment de l'exécution, un doctype erroné est détecté et précédé de la version transitoire 4.01.

Dans les outils de développement d'IE, en visualisant la console, je vois que HTML1524: Invalid DOCTYPE. The shortest valid doctype is "<!DOCTYPE html>" . et le html suivant (modifié en cours d'exécution) :

Je crois L'utilisation abusive de DOCTYPE et le non-fonctionnement de certains jQuery ont une raison commune. mais n'a pas trouvé ce que c'est

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

tandis que Les états d'IE pour fonctionner en mode standard, mais certaines choses ne fonctionnent pas. (principalement en remplaçant les liens par des événements de clic de jQuery pour afficher le contenu au lieu de charger une nouvelle page entière - utilisé pour déballer d'autres branches du menu en utilisant l'accordéon, les liens originaux dans les en-têtes de catégorie avec href ne sont qu'une solution de repli au cas où jQuery n'arrive pas à animer l'accordéon)

trop d'autres événements liés au clic ou de fonctions jquery ui permettant de faire passer un lien pour un bouton ne fonctionnent pas dans IE alors qu'ils fonctionnent dans d'autres navigateurs.

Le html original tel que 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 à la fois mootools et jQuery et je sais que le slick-uniqueid dans les attributs htm vient de moo, je ne sais pas si c'est la même personne qui édite le doctype, mais je suis sûr que cela ne se produit que dans les navigateurs IE, Chrome et Firefox fonctionnent correctement

Les scripts jQuery sont chargés à partir d'un fichier js externe, enveloppés dans des jQuery(function() {.. et tous utilisent le nom complet de la variable jQuery au lieu du signe dollar, par exemple jQuery("#myid").click( function(e){.. .

car j'utilise à la fois mootools et jQuery (je sais que je ne devrais pas, mais j'ai besoin d'un plugin mootools pour un diaporama avec des vignettes et l'effet KenBurns /quiconque connaît une alternative jQ gratuite??/) et jQuery est chargé en premier et dans les scripts, je n'utilise que jQuery()... donc le signe $ dollars est tout gratuit pour mootools pour l'utiliser plus tard, car il est chargé juste en cas de besoin, dans le corps (je ne suis pas sûr que ce soit correct, mais c'est la façon dont 'visualslideshow' l'a présenté).

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

15voto

userx Points 2529

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

IE10 cessera d'envoyer l'erreur dans la console. Je ne sais pas pourquoi IE10 n'aime plus le XHTML transitionnel. Si quelqu'un a un moyen de faire en sorte qu'IE10 reconnaisse le DOCTYPE XHTML 1.0 Transitional, ce serait génial.

5voto

james31rock Points 744

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

3voto

Invincible Points 176

J'ai eu le même problème. Cela vaut la peine de regarder les bibliothèques externes que vous utilisez. J'utilisais BXSlider et il n'était pas heureux avec jQuery 1.8 sur IE10. A cause de cela, IE10 échouait et affichait un message.

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

Ma solution a été de mettre à niveau mon JQuery vers la version 1.9.1 et d'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 cela aidera quelqu'un.

0voto

user2584478 Points 11

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

Je l'ai juste changé en type="text/css" et ça marche.

0voto

Ast Derek Points 2263

Vous avez une coquille dans votre deuxième premièrement DOCTYPE la définition du W3C Il manque un a un supplément c :

                                                                             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 corriger cela et testez à nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X