2010-05-05 108 views
5

我的未到達開發商,每當一個新的頁面中發生,他已爲之創建的HTML生成系統爲我們的產品..參數範圍內工作的地方:HTML文檔類型設置/ IE怪癖模式

<!-- updated page at 05/MAY/2010 02:58.58 --> 
<!-- You must use the template manager to modify the formatting of this page. --> 

導致我的代碼看起來像:

<!-- updated page at 05/MAY/2010 02:55.30 --> 
<!-- You must use the template manager to modify the formatting of this page. --> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 

看着開發商畫面時,我不認爲IE瀏覽器讀取的這個DOCTYPE所有的,因爲,它呈現的怪癖模式...是否有任何其他方式迫使IE離開這種可怕的奇怪模式?我一直在嘗試接觸開發者,但他一直沒有提供。

非常感謝您提供任何幫助。

//編輯:

這是可能通過JavaScript做,與負載命令打父頁面?

+0

這是某種遲到,但問題是在doctype前的意見。這會導致IE切換到quirksmode。 – 2012-09-06 07:17:05

回答

2

沒有什麼可以做的。您的內容管理系統失敗。您或者需要找到開發人員並讓他們修復這個錯誤的系統或者獲得一個新的內容管理系統。

+0

無賴..我會繼續我的電子郵件大禮包。謝謝 – Petrogad 2010-05-05 03:49:03

0

如何生成頁面?

如果您使用PHP,您可以使用輸出緩衝來保持輸出模板註釋。

+0

可悲的是,我對它們的生成方式有0控制:/我打了build,並且構建了html頁面,並且我堅持了頁面上的任何內容,我可以重新構建,但是該評論始終堅持最佳。 – Petrogad 2010-05-05 03:24:48

0

如果您堅持使用該代碼,那麼爲什麼不向編譯過程添加最後一步,即刪除這些註釋?

2

您可以強制IE加入

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

你的頭節的開頭爲HTML使用標準模式,或者你可以通過服務器配置中添加相當於HTTP標頭。然而,這隻能在IE8或更高版本上運行。

0

是的,這可能是,但這是一件非常糟糕的事情。

UPD。對不起,它不起作用。

但是在某些情況下,我們根本無法控制向用戶提供的內容。典型情況:由於某些法律原因貴公司有義務使用的支付網關。它們允許您設置頁面的樣式,並將自己的內容放入其中,但不允許更改或設置文檔類型(並且根本不設置它!)。

所以,啓發此鏈接:http://www.webmasterworld.com/forum91/4856.htm和美化解決方案可能會是這樣(把你的結束標記</body>前):

<!--[if IE]> 
<script> 
!function() { 
var doctype = "<!DOCTYPE html>", 
    headHTML = document.head.outerHTML, 
    bodyHTML = document.body.outerHTML; 

window.doctypeSet = false; 

if (window.doctypeSet) return; 
setTimeout(function(){ 
    document.write(
    doctype + 
    "<html>" + 
    headHTML + 
    bodyHTML + 
    "</html>" 
); 
    window.doctypeSet = true; 
}, 0); 

}(); 
</script> 
<![endif]--> 

然而,你可能也想改變<!--[if IE]>的東西像<!--[if lte IE 9]>,這樣IE10和更高版本就不會執行這種骯髒的舞蹈。我不確定IE10是否也會切換到quirksmode,如果doctype不存在,如果它沒有切換,那麼就不需要在那裏調用這個代碼。