2010-09-30 60 views
0

我们已经构建了一个基于JavaScript的小部件,我们的客户已将其嵌入到他们的网站中。他们声称,它不会对他们在IE7的网站工作,这个问题是在他们的页面顶部的DOCTYPE头的区别:HTTP Doctype头问题在IE7中导致问题?

我们:

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

他们:

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

这两个头文件是否有区别,以及它们如何影响IE7的性能?

Thanks-

回答

1

第二个文档类型将在IE中触发怪异模式。在这种模式下,它模拟了来自IE 5.x的一些错误,以便它可以与199x时代的网站兼容。

这具有广泛的影响,并包括诸如获得的width含义在CSS错误(来自IE6仅在标准模式起,但固定的)并得到setAttribute错误(来自IE8固定起,但只有在标准模式)。

+0

这似乎是它。具体问题最终是一个绝对定位的div与style =“left:0px; right:0px”最终崩溃为空,修复是指定一个明确的宽度。 – Yarin 2010-09-30 20:20:40

2

取决于它如何被打破了。 JS不关心DOCTYPE,但小部件的HTML可能会。虽然存在差异,但问题更多的是怪癖模式与标准模式。

这里是一个chart其中文档类型触发哪些模式在不同的浏览器

+0

准确地说,文档类型可能触发怪癖或标准模式。 http://en.wikipedia.org/wiki/Quirks_mode – Savageman 2010-09-30 18:26:15

+0

我相信任一个DOCTYPE都应该触发标准模式,然后页面可能会打破标准 – Rob 2010-09-30 18:35:24

+0

JS **不关心怪癖/标准模式和HTML 4.01 Transitional没有URI触发怪癖模式。 – Quentin 2010-09-30 18:57:25

0

IE已经得到了巨大的罪魁祸首,用于当文档类型的arent适当地设定或正确的arent显示出来有问题。我没有看到,即7经常这样做,但我知道IE 6是可怕的。你能够声明doctype是什么吗?

+0

我们不能触摸doctype,因为它是客户的网站,我们只是提供一个小部件。谢谢。 – Yarin 2010-09-30 20:21:34