aardio 文档

web.script 库模块帮助文档

说明

web.script 使用 ScriptControl 控件。 而 ScriptControl 加载的脚本每行最好保持在 1000 字以内。 ScriptControl 控件的不同版本每行字数上限在 1000 字到 2000 字以内是安全的, 稳妥的方法是保证每行在 1000 字以内.

现在很多压综的 JS 都去掉了所有换行, 建议用 aardio 提供的 java.yuiCompressor 重新压缩 JS。 java.yuiCompressor 已默认设置为单行上限 1000 字。 在扩展库管理器双击 java.yuiCompressor 可查看范例。

对于较新的 JS 如果 java.yuiCompressor 压缩失败。 可参考 aardio 自带 nodeJs 扩展库范例改用 uglify-js 压缩。

web 成员列表

web.script("ES6")

创建 JavaScript(ES6) 脚本解释器。
需要调用 Win10/Win11 自带 Chakra 组件。Win10 以下系统退化为 JScript。
Chakra 与 web.form, web.mshtml 冲突,导入这些库时自动退化为 JScript。
Chakra 支持 ES6,支持箭头函数,let,const,类等 ES6 语法。
但不支持一些 JScript 专有的函数,例如 VBArray。
对于 Chakra,ScriptEngine 等函数返回的版本信息是无意义的

web.script("JScript")

创建 JScript 脚本解释器
参数可省略

web.script("JScript9")

创建 JScript9 脚本解释器。
操作系统最低要求 Win10/Win11,
Win10 以下系统退化为 JScript。

web.script("VBScript")

创建 VBScript 脚本解释器

web.script()

创建 JScript 脚本解释器

返回对象:webScriptObject

web.script 成员列表

web.script.eval()

计算并返回参数@1中 JScript 代码指定的表达式的值,
如果有多个参数,则调用 string.format 格式化所有参数获取要执行的脚本代码

web.script.preload

此名字空间下的对象用于添加初始化脚本,
每个初始化脚本对象必须包含以下字段:
language 一个表,键为小写的脚本语言名称,值为 true 则支持该语言,
code 指定要加载的脚本代码

具体用法请参考 web.script.json 源码

webScriptFuncObject 成员列表

webScriptFuncObject.HasReturnValue

是否有返回值

webScriptFuncObject.Name

函数名字

webScriptFuncObject.NumArgs

参数数目

webScriptObject 成员列表

webScriptObject.?

可直接赋值为 aardio 对象或函数以允许脚本调用,
在这里写入数组属性时,会自动调用 createArray 转换

注意如果只是要读写脚本中的变量值,应通过 script 属性读写

webScriptObject.addCode("字符串参数")

添加脚本代码,
调用这个函数的作用等价于直接对 script 属性赋值

webScriptObject.allowUi

是否允许消息框等界面元素

webScriptObject.createArray()

参数传入 aardio 数组,转换为当前脚本支持的数组对象

webScriptObject.doScript("字符串参数")

添加脚本代码
参数可以是脚本代码、脚本文件路径,
如果事先引入 inet.http 库,就可以在参数中指定脚本网址

webScriptObject.error

发生错误时此属性返回错误对象

webScriptObject.eval()

计算并返回参数@1中脚本代码指定的表达式的值,
如果有多个参数,则调用 string.format 格式化所有参数获取要执行的脚本代码

webScriptObject.executeStatement("字符串参数")

执行代码,无返回值

执行代码,无返回值

webScriptObject.jsConstructor("Array")

获取 JS 使用 new 语句创建对象的构造函数。
参数 @1 可以是 JS 对象,或字符串类型的对象名字。

调用返回的构造函数时:
构造参数包含 COM 对象则直接传参,否则使用 JSON 转换为纯 JS 参数。

webScriptObject.jsNew("Array")

调用 JS 的 new 语句构造 JS 对象。
参数 @1 可以是 JS 对象,或字符串类型的对象名字。
可指定一个或多个构造参数。
构造参数包含 COM 对象则直接传参,否则使用 JSON 转换为纯 JS 参数。

webScriptObject.json

通过此对象的成员可调用 JavaScript 脚本中的同名全局函数,
也可在下标操作符中用一个指向函数对象的 JS 表达式以获取对应的调用函数,
参数自动转换为 JSON(支持单个参数),返回值自动解析 JSON

也可以将此对象作为函数调用,
传入 aardio 对象自动转换为 JScript 对象,
传入 JScript 对象时则返回 aardio 对象。

web.script.es6 直接支持 json 对象

webScriptObject.language

设置或获取正在使用的 Script 语言名称
可选值"VBScript","JScript"。
注意 "ES6","JScript9" 只能在 web.script 构造函数里指定

webScriptObject.modules

组件模块集合
可使用 com.each 迭代器遍历

webScriptObject.procedures()

返回对象:webScriptFuncObject

webScriptObject.procedures(序号)

模块中定义函数的集合

webScriptObject.reset()

重置脚本虚拟机,丢弃所有对象和代码
并将State属性设为0

webScriptObject.script

获取属性时返回脚本对象
通过此对象可直接调用脚本中的函数,

写入属性时应使用字符串指定脚本代码,相当于调用 doScript 函数,
多次写入此属性是添加脚本不是覆盖替换脚本

webScriptObject.script.?

读写脚本中的对象,
可调用脚本函数并返回值,支持不定个数参数

调用 Chakra(ES6)函数时不支持无参数函数,但可通 json 属性调用

webScriptObject.siteHwnd

脚本中显示UI的父窗口句柄

webScriptObject.state

为0不转发事件
为1则转发事件

webScriptObject.timeOut

脚本超时时间,以毫秒为单位,默认为-1表示不超时,
如设置超时脚本运行太久会弹出是否继续运行的对话框

webScriptObject.useSafeSubset

脚本控件是否限制运行未被标记为“脚本安全”的组件

webScriptObject.xcall("函数名",参数)

运行 JS 函数,
Chakra(ES6)不支持无参数函数,但可通 json 属性调用

Markdown 格式