Версия 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);
обратите внимание, что это показывает только последнюю версию, предоставленную браузером, режим документа не влияет к возвращаемым значениям.