Версия JavaScript в HTA

кто-нибудь знает, какая версия JavaScript используется HTA-файлами.

В настоящее время создается несколько файлов сценариев - и пытается использовать Object.defineProperty

при запуске как HTA-это ошибки, указывающие, что объект не поддерживает это свойство или метод. Я запустил его как HTM-файл, чтобы проверить , и нет никаких проблем.

поэтому я могу только предположить, что mshta.exe использует более старый движок JavaScript. Кто-нибудь может это подтвердить?

1 ответов


используемая версия JavaScript (или JScript) зависит от трех вещей: установленной версии Interner Explorer, используемой декларации типа документа (DTD) и x-ua-compatible мета-тег.

хотя HTAs управляются mshta.exe, IE предоставляет JavaScript и движки рендеринга для приложений, поэтому все, что сказано позже о версиях JS, означает box-модели, позиционирование, CSS и т. д., а также доступные API и HTML-элементы.

если у вас установлен IE11 в вашей системе, вы можете используйте последнюю версию JavaScript с помощью <!DOCTYPE html> и <meta http-equiv="x-ua-compatible" content="ie=edge" />.

естественно, задание content to IE=edge не переопределяет старую версию установленного IE, используется последний доступный режим. Вместо edge, вы можете использовать номера версий IE для понижения рейтинга приложения при запуске с новыми IEs.

опущение DTD всегда должно отбрасывать приложение для запуска в режиме причуд, который в случае HTA похож на IE5. Однако в этом случае режим документа может быть изменено с x-ua-compatible, но были некоторые несоответствия, по крайней мере, в IE8 & 9. Всегда безопаснее использовать DTD, если режим причуд не требуется.

С DTD, но без x-ua-compatible метатег HTAs выполняются в режиме стандартов IE7 (который не поддерживает object.defineProperty(), он представлен в IE9).

вы можете прочитать больше о предмете в MSDN:введение в HTML-приложения (HTAs)

IE информация о версии для JS и CSS можно найти на В MSDN:

информация о версии JavaScript

совместимость CSS в 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);

обратите внимание, что это показывает только последнюю версию, предоставленную браузером, режим документа не влияет к возвращаемым значениям.