2013-01-23 85 views
1

我遇到了一個問題,即所有版本的IE都在Quirks模式下在我的網站上呈現單個頁面。該頁面在新窗口中點擊鏈接打開:在Internet Explorer中以怪癖模式頁面加載 - doctype註釋掉

<a href="javascript:void(0);" onclick="popUp();" target="popupWindow">Launch Processor</a> 

,並使用以下JS確定窗口:

function popUp(contactId) { 
"use strict"; 
var url, width, height, leftPos, topPos, targetWin; 
url = '/company/process'; 
if (contactId !== undefined && contactId !== null && contactId > 0) { 
    url += '?contact_id=' + contactId; 
} 
width = 900; 
height = 800; 
leftPos = (screen.width/2) - (width/2); 
topPos = (screen.height/2) - (height/2); 
targetWin = window.open(url, 'popupWindow', 'toolbar=no, location=0, directories=no,  status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + width + ',  height=' + height + ', top=' + topPos + ', left=' + leftPos).focus(); 
} 

現在,一噸的研究後,我已經嘗試了一切,並閱讀在此提出的各種其他問題記錄了相同的問題,如this one和。

我在我的文本編輯器中檢查過我的文件,並在IE和Chrome中查看源代碼(不使用IE中的Inspector工具或開發工具),並且沒有空格,字符或其他可能會在DOCTYPE。雖然我看到它被註釋掉,但在IE開發者工具中查看文檔類型。這與我在整個站點使用的doctype結構(來自HTML5 Boilerplate)是一樣的。沒有其他網頁有這個問題。 DOCTYPE聲明和元項目如下:

<!doctype html> 
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7 page-company" lang="en"> <![endif]--> 
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 page-company" lang="en"> <![endif]--> 
<!--[if IE 8]><html class="no-js lt-ie9 page-company" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js page-company" lang="en"> <!--<![endif]--> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

現在,就像我提到這個頁面被加載在使用一些JS打開一個新的窗口。如果我右鍵單擊該窗口並選擇刷新,頁面權限本身,doctype不再被註釋掉,並且頁面在標準模式下正確顯示,而不是Quirks。如果我直接訪問這個URL,而不是通過新的彈出窗口,它也能正確渲染。

這是什麼原因造成的?這是否與用於強制打開新窗口的js有關?

在此先感謝您的幫助,我真的很感激!

+0

fwiw我不認爲這個鏈接是非常容易訪問的,非人類將無法找到它,而我們這些用無腳本瀏覽的網站會有點惱火 – Eevee

+0

它實際上是一個付款頁面,它實際上不是這意味着除了提交付款的人之外任何人都可以訪問,所以現在對我們來說不是太大的擔心。 – CSSgirl

回答

1

doctype被註釋掉的事實表明正在處理頁面,就像IE是IE7或更早版本一樣。

請注意,擁有<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">對您的頁面沒有任何影響,因爲您在該頁面之前添加了條件註釋。那些提交IE的行爲就像一個特定的版本一樣。

您可以嘗試將X-UA兼容,IE =邊緣設置爲真正的HTTP標頭。這將在條件註釋之前處理,因此應該強制IE使用其最新模式。

當在文件開頭檢查頁面中的無關字符時,我建議不要使用瀏覽器或文本編輯器,而應使用十六進制編輯器。例如,十六進制編輯器Neo(免費下載)將允許您直接從url加載資源,以便您可以看到發送到瀏覽器的確切字節數。

+0

我實際上甚至嘗試刪除所有這些條件註釋,並且只是具有語句,但結果相同。 :( – CSSgirl

相關問題