2010-09-30 4 views
0

Nous avons construit un widget basé sur javascript que notre client a intégré dans leur site Web. Ils affirment qu'il ne fonctionne pas sur leur site dans IE7, et que le problème est la différence des en-têtes de DOCTYPE en haut de leurs pages:HTTP en-tête Doctype problème provoque des problèmes dans IE7?

Ours:

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

leur:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

Y a-t-il une différence entre ces deux en-têtes, et comment ils affecteraient les performances dans IE7?

Merci-

Répondre

1

Le second doctype déclenchera le mode Quirks dans IE. Dans ce mode, il émule un certain nombre de bogues d'IE 5.x afin qu'il puisse être compatible avec les sites Web 199x ère. Cela a un large éventail d'effets et comprend des choses comme obtenir la signification de width dans CSS erroné (fixé à partir d'IE6, mais seulement en mode standard) et obtenir setAttribute faux (à partir d'IE8, mais seulement en mode standard).

+0

Cela semble être le cas. Le problème spécifique a fini par être qu'un div positionné avec style = "left: 0px; right: 0px" a fini par se réduire à rien, et le problème était de spécifier une largeur explicite. – Yarin

2

Dépend de la façon dont il est cassé. JS ne se soucie pas du DOCTYPE, mais du HTML du widget. Il y a des différences mais il est beaucoup plus probable que le problème soit le mode quirks ou le mode standard.

Voici un chart dont DOCTYPE déclenchent les modes dans différents navigateurs

+0

Précisément, le doctype peut déclencher des caprices ou le mode standard. http://en.wikipedia.org/wiki/Quirks_mode – Savageman

+0

Je crois que DOCTYPE devrait déclencher le mode standard, et que la page est probablement en train d'enfreindre les normes – Rob

+0

JS ** ne se soucie pas du mode quirks/standards, et HTML 4.01 Transitional sans URI déclencheurs mode quirks. – Quentin

0

IE a été un énorme coupable pour avoir des problèmes lors de doctypes ne coûtent pas correctement définis ou ne coûtent pas apparaître correctement. Je n'ai pas vu c'est à dire 7 fois le faire souvent, mais je sais que IE 6 était terrible. Êtes-vous capable de déclarer ce qu'est le doctype?

+0

Nous ne pouvons pas toucher le doctype car c'est le site du client, et nous fournissons simplement un widget. Merci. – Yarin