2010-09-30 70 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