IActiveScript的实例,实现了IE9的JavaScript引擎("Chakra"),在Quirks模式下工作



通过在CLSID"{16d51579-a30b-4c8b-a276-0ff4dc41e755}"(如此处描述)的基础上创建IActiveScript的实例,我们得到了IE9的JavaScript引擎,它在Quirks模式下工作。不幸的是,在 Quirks 模式下不支持 ECMAScript 5。

有谁知道如何为"Chakra"创建一个在IE9标准模式下工作的IActiveScript实例?

将你的IActiveScript投射到IActiveScriptProperty然后像这样用SCRIPTPROP_INVOKEVERSIONING调用SetProperty

CComQIPtr<IActiveScriptProperty> property = jscript;
CComVariant version(SCRIPTLANGUAGEVERSION_5_8 + 1); // = 3
hr = property->SetProperty(SCRIPTPROP_INVOKEVERSIONING, nullptr, &version);
我相信

CLSID是16d51579-a30b-4c8b-a276-0ff4dc41e755。 这里有关于 Active Script 和 JScript 接口的各种重要信息,特别是对于那些使用 C# 的人。

以防

万一人们想知道:用"SCRIPTPROP_INVOKEVERSIONING"调用"SetProperty"的技巧仍然有效。现在支持的最大版本(使用 jscript9.dll版本 11.0.16299.2107)显然是 15。

它似乎支持IE中可用的任何"最新"功能,例如"let","const"或"Map",但没有Edge中支持的功能(例如"类")。

相关内容

  • 没有找到相关文章

最新更新