使用されているJavaScript(またはJScript)のバージョンは、Interner Explorerのバージョン、使用されているドキュメントタイプ宣言(DTD)、x-ua-compatible
メタタグという3つの要素によって異なります。
HTAsはmshta.exeによって実行されますが、IEはJavaScriptとレンダリングエンジンをアプリケーションに提供するため、後ほどJSバージョンについて言及するものはすべてボックスモデル、位置付け、CSSなど、利用可能なAPIとHTML要素です。
システムにIE11がインストールされている場合は、<!DOCTYPE html>
と<meta http-equiv="x-ua-compatible" content="ie=edge" />
を使用して最新バージョンのJavaScriptを使用できます。
もちろん、content
をIE=edge
に設定しても、インストールされているIEの古いバージョンは上書きされません。最新の使用可能なモードが使用されます。 edge
の代わりに、新しいIEで実行するときにIEバージョン番号を使用してアプリケーションをダウングレードすることができます。
DTDを省略すると、アプリがQuirksモード(常にHT5の場合はIE5に似ています)で動作するようになります。しかし、この場合、文書モードはx-ua-compatible
で変更できますが、少なくともIE8 & 9.にはいくつかの矛盾があります。Quirksモードが不要な場合は、DTDを使用するのが最も安全です。
x-ua-compatible
メタタグHTAを使用していないDTAでは、IE7標準モード(IE9で導入されたobject.defineProperty()
はサポートされていません)で実行されます。
あなたはMSDNで主題についての詳細を読むことができます:JSとCSSのIntroduction to HTML Applications (HTAs)
IEのバージョン情報は、MSDNで見つけることができます:ここで
JavaScript version information
CSS Compatibility in Internet Explorer
は「安全です使用可能な最新のバージョンを使用する場合は、HTAファイルの「開始」を選択します。
<!DOCTYPE html>
<html>
<head>
<title>HTA</title>
<meta http-equiv="x-ua-compatible" content="ie=edge" />
// All link, style and script tags, or any code should be placed below the five lines above
あなたはまた、最新のスクリプト・バージョンを見つけるためにScriptEngine
機能を使用することができます。これはブラウザが提供する最新バージョンのみが表示されていることを、
ver = ScriptEngine() + ' V ';
ver += ScriptEngineMajorVersion() + '.';
ver += ScriptEngineMinorVersion() + '.';
ver += ScriptEngineBuildVersion();
alert(ver);
お知らせ、ドキュメントモードが返された値には影響ありません。 。
メタタグを使用するたびに、私のhta:アプリケーションのプロパティは機能しません。私がそれをコメントアウトすれば、彼らはそうする。解決策はありますか? – ndm13
残念ながら、私はこれに対して良い解決策ではありませんでした。IE10以降、HTAプロパティの多くはもはや適用されていないようです(解析されたコードでは 'HTA'タグが' body'に移動します)。 IE9ではまだ尊敬されているようです。私はほとんどの場合、IE = edgeの代わりに 'IE = 9'を使用しました。これは少なくとも現代的なイベント処理と' svg'と 'canvas'を含むHTML5タグのほとんどを提供します。 – Teemu
'IE = 9'は完璧に動作します!私はこれがある時点で修正されたことを願っていますが、これが段階的になっているように見えるので疑問です。次のバージョンのWindowsがHTAファイルをサポートしていない場合、私は驚くことはありません。 – ndm13