方面:改變基於iframe網址與JavaScript的X-UA兼容meta標籤
我在一個大型網站有,所以我們不得不強制IE7文檔模式,在新的瀏覽器打破一些舊的控制工作的標準的meta X-UA兼容標籤。我們已經取代了大部分的問題控制措施,但沒有時間和預算來替代它們。我們希望沒有控件的頁面在當前文檔模式下呈現,以便IE瀏覽器利用客戶端提供的性能提升。問題是,我很難得到更新的即瀏覽器切換模式,如我想要的。該網站的導航使用了一個iframe,我覺得這可能是我的主要問題。我在iframe的父頁面上有我的JavaScript。
我想用javascript來做到這一點,並一直在嘗試這樣做。這是我正在做的。它成功地改變了標籤,但瀏覽器似乎並不在意。 爲了讓瀏覽器考慮標籤,我需要更改什麼?
//tag swapping code
function FixIEMetaTag(url) {
//Remove current IE meta Tag
var iefixTagOld = document.getElementsByTagName('meta')[0];
if (iefixTagOld) { iefixTagOld.parentNode.removeChild(iefixTagOld); }
//Determine Document Type for IE browsers
var contentVal = 'IE=Edge';
if (IsPageWithBadGrid(url)) { contentVal = 'IE=7'; }
//Create and add new IE meta Tag
var iefixTag = document.createElement('meta');
iefixTag.setAttribute("http-equiv", "X-UA-Compatible");
iefixTag.setAttribute("content", contentVal);
var theHead = document.getElementsByTagName('head')[0];
theHead.insertBefore(iefixTag, theHead.firstChild);
}
//navigation code
function GoToPage(url) {
if (window.frames["ifrm"]) {
FixIEMetaTag(url);
window.open(url,"ifrm");
return false;
}
return true;
}
在加載頁面後,沒有必要以編程方式更改''。它們在加載時執行,然後添加/更改/刪除''被忽略。 – Teemu 2013-02-15 17:40:42
我當時希望有某種方式可以在瀏覽器上加載iframe內容時大吼一聲,但我想不是 – jumpdart 2013-02-15 17:46:23
好吧,'iframe'可能更難以在IE中設置文檔模式。它們通常從主窗口繼承模式,甚至忽略文字'x-ua-compatible',特別是當試圖在'iframe'中使用「更高」模式時。 – Teemu 2013-02-15 17:49:53