我遇到了一個問題,即所有版本的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有關?
在此先感謝您的幫助,我真的很感激!
fwiw我不認爲這個鏈接是非常容易訪問的,非人類將無法找到它,而我們這些用無腳本瀏覽的網站會有點惱火 – Eevee
它實際上是一個付款頁面,它實際上不是這意味着除了提交付款的人之外任何人都可以訪問,所以現在對我們來說不是太大的擔心。 – CSSgirl