2012-07-30 20 views
3

我正在將我的一些舊的HTA從怪癖轉換爲IE9標準。但是,HTA打開的模態對話框和非模態對話框似乎不支持IE9標準模式。如何獲得由HTA打開的對話框的IE9標準支持?

檢驗對話框:

<!DOCTYPE html> 
<html> 
<head> 
<title>TestDialog</title> 
<meta http-equiv="x-ua-compatible" content="ie=9" /> 
</head> 
<body> 
<svg> 
    <circle cx="100" cy="100" r="50" fill="#0f0" /> 
</svg> 
</body> 
</html> 

在HTA主頁:

<button onclick="showModalDialog(...)">Modal</button> 
<button onclick="showModelessDialog(...)">Modeless</button> 

當從HTA打開TestDialog,它是空的。如果主頁面是常規的html文檔,則綠色圓圈會出現在對話框中。從HTA打開時,如果對話框文件本身是htm或hta,則沒有區別。

我也測試了addEventListener(),但它也不會在對話框中工作。

那麼,從HTA打開時,我可以「強制」對話框來支持IE9標準嗎?


編輯

看來,模式和HTA打開模態對話框在IE8的水平。在Windows7中使用IE10時也會出現這種情況。

回答

1

在這個問題上的關鍵字的快速谷歌給了我這個頁面上微軟MSDN網站:http://msdn.microsoft.com/en-us/subscriptions/ms536496(v=vs.85).aspx

回答你的問題是THA頁面上。答案是將x-ua-compatible元標記添加到您的HTML <head>部分。

引述:

默認情況下,在兼容性視圖,它顯示在IE7標準模式和怪異模式內容在IE5(怪癖)模式標準的模式內容HTA的顯示網頁。要利用現有的Internet Explorer當前版本的功能,使用meta元素來定義一個X-UA-Compatible標頭爲您的HTA

標籤應該是這樣的:

<meta http-equiv="x-ua-compatible" content="ie=9"> 

以上是根據MSDN網站。事實上,我建議使用content="ie=edge"比指定IE9模式更好。否則,當你升級到IE10時,你將失去IE10中的任何新功能。

+0

感謝您的回答,但正如您在我的示例中看到的那樣,代碼中已經包含「x-ua-compatible」(也在主頁中)。所有「HTML5-stuff」都在主頁面中工作,但不在對話框中= {。我也試過'IE = edge',不幸的是它也沒有幫助。 – Teemu 2012-07-30 19:23:52

+0

嗯。這是一個痛苦。我希望'邊緣'會做到這一點。 MSDN網站的示例是否適合您? – Spudley 2012-07-30 19:45:14

+0

不在對話框中,僅在主HTA中。如果主頁是HTM,那麼對話框也支持IE9標準。也許MS忘記更新mshta.exe的對話框? – Teemu 2012-07-30 19:52:24

相關問題