2014-06-19 5 views
2

게시 됨 Jun-19-2014HTA 및 'x-ua-compatible'메타 태그

Thanks Bond. IE9를 사용 했으므로 시험에 감사드립니다. IE 10이있는 사람도 테스트 해보기를 바란다. IE 11 엔진에서는 ie8까지의 호환성 만 실행할 수있는 이유는 없습니다.


나는 작고 가벼운이 HTA를 만들어 게시 했으므로 나는 실종 된 것을 발견 할 수 있었다. HTA는 복숭아 - 예리한 실행

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

: 나는 같은 메타 태그를 설정하면

내 시스템은 IE 11

와 Win7에 프로 64 비트입니다. 아무 문제 없습니다. 그러나 내가 그것을 바꿀 때 :

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

그것은 그렇게 잘 달리지 않는다.

이제 IE 11과 VBScript 사이에 큰 가족이 날아 갔다는 것을 알고 있습니다. VBscript가 좋은 일을하기 위해 집 밖으로 나왔습니다. IE 11은 더 이상 통신을 거부합니다. 그래서 나는 content = "ie = edge"로 설정하는 것이 왜 효과가 없을지 이해할 수 있습니다. 하지만 content = "ie = 9"로 설정할 때 왜 작동하지 않습니까? 창이 팝업 ... 메타 태그에 설정된 IE8 잘 작동으로

<!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 태그 ... ie9 세트로 실행하면 크기 조정이 무시되고 모든 VBScript가 무시되는 것처럼 파일에 대한 쓰기가 무시됩니다.

어떤 정보가 누락 되었습니까?

+0

VBScript는 IE11에서 작동합니다. 인트라넷에 있거나 호환성을 선택할 필요가 있습니다. – phd443322

+0

@ phd443322 다른 방법으로 HTA를 실행할 수 있습니까? – Teemu

+0

phd- 저는 IE 11이 vbscript를 실행하지 않는다는 것을 알고 있습니다. 나는 그것을 말했다. 나는 또한이 문제를 게시 한 이유 인 compatabilty를 실행하는 것을 알고 있습니다. 콘텐츠 = ie8로이 간단한 것을 실행하면 (mshta.exe) 잘 동작하지만 콘텐츠 = ie9로는 실행되지 않습니다. 나는 이유를 찾고있다. –

답변

0

IE9보다 최신 버전은 HTA와 호환되지 않습니다. 따라서 <meta http-equiv="x-ua-compatible" content="ie=9" /> 태그를 넣으면 <hta:application>, VBScript 또는 프레임과 같은 HTA 용 태그를 지원하지 않습니다. 나는 또한 그 문제가있다. 그리고 나는 IE의 초기 버전에서 작동하지 않는 것들을 해결하려고 노력하고있다. (예를 들어 this question에 대한 나의 대답을 보라). HTA에서 게시 한 IE의 초기 버전에서는 작동하지 않는 것을 사용하지 않는 것 같습니다. IE7에서 제대로 작동하지 않는 것을 사용하고 있다면 IE7에서 해결 방법을 제공 할 수 있습니다.

2

나는 똑같은 문제에 봉착했습니다.

해결 방법은 Window을 소문자로 사용하는 것입니다. VBScript는 대소 문자를 구분하지 않으므로 특히 놀랍습니다!

따라서 Sub Window_onLoad 대신 Sub window_onLoad을 선언하십시오. 마지막으로 스크립트가 작동해야합니다. Win7 Pro 64bit에서 Internet Explorer 11을 사용하여 테스트했습니다.

IE가 파업 중입니다!

1

IE의 이후 버전이 다른 답변에서 언급 한 것처럼 HTA를 지원하지 않는 것처럼 보입니다. 문제의 해결책은 다음과 같습니다. HTA 파일을 탐색 할 수있게 만들고 (HTA 속성 navigable="yes") x-ua-compatible 메타 태그를 지정하지 마십시오. HTA 파일에서 x-ua-compatible 태그가있는 다른 파일을 탐색합니다.당신이 탐색 파일은 HTA priviliges이있을 것이다 :

HTA 파일 : 세드릭

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

으로 내 앞에 말했다

<!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는 "이 솔루션은 소문자로 창을 넣어하는 것입니다 ","Sub Window_onLoad 대신 Sub window_onLoad를 선언하십시오. "

HTA에서 js와 ​​vbs를 모두 사용할 때 내 문제가 발생했습니다. 내 사건을 내 Java "window.onload = function()"과 일치 시키면 모든 것이 잘 작동합니다. vb 자체는 대소 문자를 구분하지 않지만 일부 mshta.exe 특정 동작 일 수 있습니다.