2014-06-19 38 views
2

已被添加到帖子Jun-19-2014HTA和'x-ua兼容'meta標記

Thanks Bond。既然你有IE9,我很欣賞你的測試。希望如果有人有IE 10,他們也會測試它。爲什麼在IE 11引擎下你只能運行兼容性達到ie8,這沒有任何意義。


我創造了這個微小的,itty-bitty HTA爲了張貼它,所以希望我能找出我失蹤。

我的系統是Win7的臨64位的IE 11

當我設置的元標記爲:

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

的HTA運行桃色,激烈。沒問題。但是,當我將其更改爲:

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

它運行得不太好。

現在......我知道在IE 11和VBScript之間有一個很大的家庭爆出。 VBscript從房子裏出來好了。 IE 11拒絕與它溝通了。所以我可以理解爲什麼將它設置爲content =「ie = edge」不起作用。但是當它設置爲content =「ie = 9」時爲什麼不起作用?

<!DOCTYPE html> 
<head> 
<meta http-equiv="x-ua-compatible" content="ie=8"> 
<hta:application 
applicationname="Hmmmmmm" 
singleinstance="yes" 
id="oHTA" 
> 
<title>Huh? What?</title> 
<script language="VBScript"> 

Option Explicit 
Dim objFSO,file 

Sub Window_OnUnLoad 
    Set objFSO=CreateObject("Scripting.FileSystemObject") 
    Set file=objFSO.OpenTextFile("c:\temp\submit.txt",2,True) 
    file.Write oHTA.document.getElementById("aa").value 
    file.Close 
    Set objFSO=Nothing 
    Set file=Nothing 
End Sub 

Sub Window_OnLoad 
    window.ResizeTo 240,130 
End Sub 

Function Form_OnSubmit() 
    window.Close 
    Form_OnSubmit=False 
End Function 

</script> 
</head> 
<body style="margin:30px;"> 
<form id="form" action=""> 
<input id="aa" type="text" size="10" value="test"> 
<input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

運行它,在meta標籤設置IE8 ...窗口彈出正常工作,得到調整,並寫入文件上提交...榮耀是!

在元標記中運行ie9設置...彈出窗口,忽略調整大小,並忽略寫入文件......就像忽略所有VBScript一樣。

我缺少什麼信息?

+0

VBScript在IE11中可以工作,您只需要在Intranet上或選擇兼容性即可。 – phd443322

+0

@ phd443322你還可以執行HTA嗎? – Teemu

+0

博士 - 我知道IE 11不運行VBScript。我說了。我也知道運行compatabilty,這就是爲什麼我發佈這個問題。運行這個簡單的東西(mshta.exe)與內容= ie8工作正常,但作爲內容= ie9不運行。我試圖找出原因。 –

回答

0

比IE9更高的版本不會與HTA兼容。所以如果你把<meta http-equiv="x-ua-compatible" content="ie=9" />標籤,它不會支持HTA的東西,如<hta:application>,VBScript或框架。我也遇到了這個問題,我所做的是我只是嘗試解決在早期版本的IE中不起作用的東西(例如,參見我對this question的回答)。您似乎沒有使用在發佈的HTA中早期版本的IE中無法使用的內容。如果您確切地告訴我您在IE7中無法使用的功能,我可能會給您一個解決方法。

2

我剛剛面臨同樣的問題。

解決方法是將Window置於小寫!這通常是非常令人驚訝的,因爲VBScript通常不區分大小寫!

因此聲明Sub window_onLoad而不是Sub Window_onLoad,等等......最後你的腳本應該可以工作。 使用IE 11測試Win7 Pro 64bit,就像你的一樣。

IE反擊!

1

看起來IE的更高版本不支持其他答案中提到的HTA。 您的問題的一個解決方案是:使您的HTA文件可導航(HTA屬性navigable="yes"),並且不指定任何x-ua-compatible元標記。在HTA文件中導航到具有x-ua-compatible標記的另一個文件。您導航到的文件將有HTA特權時:

HTA文件:

<!doctype html> 
<html lang="en"> 
    <head> 
    <HTA:APPLICATION 
    navigable="yes" /> 
    <script type="text/javascript"> 
    <!-- 
    document.location = 'htacontent.htm'; 
    //--> 
    </script> 
</head> 
<body> 
</body> 
</html> 

htacontent.htm

<!doctype html> 
<html lang="en"> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
... 
0

爲土木工程署在我面前說,「該解決方案是把窗口小寫「,」所以聲明Sub window_onLoad而不是Sub Window_onLoad「。

當我在HTA中同時使用js和vbs時,出現了我的問題。但匹配我的情況後,我的Java「window.onload =功能()」子一切工作得很好。 vb本身不區分大小寫,但這可能是一些mshta.exe的特定行爲。