我有一個需要兼容模式的框架,但是父框架似乎正在設置它,所以框架內的下面的標籤什麼也不做。使用javascript強制IE9進入兼容模式
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
有沒有辦法將compat模式應用於只有框架,或有框架將compat模式應用於父框架。
思考是否有一種javascript方法切換模式我可以將它應用到子框架的父框架。
我有一個需要兼容模式的框架,但是父框架似乎正在設置它,所以框架內的下面的標籤什麼也不做。使用javascript強制IE9進入兼容模式
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
有沒有辦法將compat模式應用於只有框架,或有框架將compat模式應用於父框架。
思考是否有一種javascript方法切換模式我可以將它應用到子框架的父框架。
所以這裏是我收集的。
似乎工作的唯一的東西是元標記的方式。
但是,由於IE9禁止了一個幀的類型不同於另一個類型,因此它在幀中不起作用。
元標記也不能由腳本或鏈接標記,只有和我注意到的其他元標記前面,否則它也會失敗。
測試用例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Test test</title>
<meta name="keywords" content="keywords, keyword, keyword phrase, etc.">
<!--<link href="test.css" rel="stylesheet" type="text/css" />-->
<!--<script type="text/javascript">alert('test');</script>-->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
</head>
<body>
inline-block <div style="display:inline-block">test</div>
</body>
</html>
從我的頭頂開始,您可以嘗試創建元標記並將其插入父框架頭。我不確定這是否會強制仿效。
var meta = document.createElement('meta');
meta.setAttribute('http-equiv', 'X-UA-Compatible');
meta.setAttribute('content', 'IE=EmulateIE7');
parent.document.getElementsByTagName('head')[0].appendChild(meta);
不幸的是這不起作用...... :( – Serhiy 2012-10-11 17:19:28
可惜的是無法做到的。在IE框架中始終使用父文檔的呈現模式。我假設由於您無法更改父文檔使其不在同一個域中,因此跨域邊界將阻止您從框架更改父文檔的呈現模式。 – pseudosavant 2012-03-30 20:25:11
我在同一個域上,但這是一個很大的遺留應用程序,數千頁。在整個版本中簡單地設置兼容模式似乎是在IE7支持開始逐漸停止時尋求更多的麻煩。但是,如果我可以讓孩子在一頁上更改父母的文檔,那正是我想要的。在我的情況下,跨域邊界不是問題。 – Serhiy 2012-03-31 03:43:15
如果打開iframe,則iframe將訪問opener以執行類似opener.set_XUA(「IE = EmulateIE7」)的操作。 要做到這一點,您可以使用open iframe的名稱作爲目標,因此它使用iframe來打開該頁面。 這可能比它應得的麻煩。 – Tei 2012-04-02 11:14:31