2010-09-07 15 views
0

我不得不重新調整一些舊代碼的工作時間,並且儘管代碼QA很好,但是沒有聲明文檔類型。當我添加一個doctype時,它在IE中打破了設計。理想情況下,我可以聲明任何doctype假定不存在的情況,但不知道這是否可能。有沒有一種方法可以聲明doctype而不更改由不帶任何文檔類型聲明的頁面創建的行爲?添加一個doctype,不用關閉當前的功能

+0

您使用的是嚴格還是過渡文檔類型? – Mark 2010-09-07 17:43:14

回答

1

不用doctype,IE會顯示在quirks mode頁面。爲了使IE保持怪癖模式,可以在doctype之前添加註釋(<!-- -->)。

編輯:如果只是IE6導致問題,XML序言(<?xml version="1.0" encoding="utf-8"?>)將保持它的怪癖模式。

編輯2:實際上lots of doctypes,這將保持IE在怪癖模式。你應該能夠找到一個你可以驗證的人。

0

這是不可能的,因爲它會將怪癖模式更改爲標準模式(假設您使用的是XHTML Transitional,HTML 4 Strict或HTML 5之類的東西),並且存在相當多的差異,尤其是對於IE。你必須解決問題或聘請其他人。

+1

如果瀏覽文檔對於聲明的文檔類型無效,IE仍然可能會決定回退到怪癖模式。 – 2010-09-07 17:48:15

+0

我假設一個合法的文檔類型,如HTML 4嚴格或HTML 5,但耶可能有軸承。 – 2010-09-07 17:50:09

0

我以前曾經有過類似的情況。我的建議是在你這樣做的時候通過HTML驗證工具運行你的HTML。我最喜歡的是這個:

http://validator.w3.org/

還有一個Firefox插件,如果你需要驗證或有某種其他機制來訪問該頁面(並不能直接擁有該網站訪問您的網站)。

如果您描述的'功能'實際上是許多IE「未公開的功能」(錯誤)之一,那麼您將無法使您的HTML標準兼容,並使其繼續運行。很可能您有許多不符合標準的代碼片段,而IE特定的錯誤處理就是讓頁面功能發揮作用的東西。不同的瀏覽器以不同的方式處理錯誤條件(因爲根據定義,錯誤條件超出了文檔類型的範圍)。

重申一遍,試着讓你的HTML通過某種驗證,然後擔心將功能添加回來。我的經驗告訴我,錯誤條件通常會導致你所描述的這類問題。

這是我在web開發中遇到的#1規則。該頁面需要驗證某些特定的文檔類型。

祝你好運!

布賴恩J. Stinar-