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 压缩。
说明
创建 JavaScript(ES6) 脚本解释器。
需要调用 Win10/Win11 自带 Chakra 组件。Win10 以下系统退化为 JScript。
Chakra 与 web.form, web.mshtml 冲突,导入这些库时自动退化为 JScript。
Chakra 支持 ES6,支持箭头函数,let,const,类等 ES6 语法。
但不支持一些 JScript 专有的函数,例如 VBArray。
对于 Chakra,ScriptEngine 等函数返回的版本信息是无意义的
创建 JScript 脚本解释器
参数可省略
创建 JScript9 脚本解释器。
操作系统最低要求 Win10/Win11,
Win10 以下系统退化为 JScript。
创建 VBScript 脚本解释器
创建 JScript 脚本解释器
计算并返回参数@1中 JScript 代码指定的表达式的值,
如果有多个参数,则调用 string.format 格式化所有参数获取要执行的脚本代码
此名字空间下的对象用于添加初始化脚本,
每个初始化脚本对象必须包含以下字段:
language 一个表,键为小写的脚本语言名称,值为 true 则支持该语言,
code 指定要加载的脚本代码
具体用法请参考 web.script.json 源码
是否有返回值
函数名字
参数数目
可直接赋值为 aardio 对象或函数以允许脚本调用,
在这里写入数组属性时,会自动调用 createArray 转换
注意如果只是要读写脚本中的变量值,应通过 script 属性读写
添加脚本代码,
调用这个函数的作用等价于直接对 script 属性赋值
是否允许消息框等界面元素
参数传入 aardio 数组,转换为当前脚本支持的数组对象
添加脚本代码
参数可以是脚本代码、脚本文件路径,
如果事先引入 inet.http 库,就可以在参数中指定脚本网址
发生错误时此属性返回错误对象
计算并返回参数@1中脚本代码指定的表达式的值,
如果有多个参数,则调用 string.format 格式化所有参数获取要执行的脚本代码
执行代码,无返回值
执行代码,无返回值
获取 JS 使用 new 语句创建对象的构造函数。
参数 @1 可以是 JS 对象,或字符串类型的对象名字。
调用返回的构造函数时:
构造参数包含 COM 对象则直接传参,否则使用 JSON 转换为纯 JS 参数。
调用 JS 的 new 语句构造 JS 对象。
参数 @1 可以是 JS 对象,或字符串类型的对象名字。
可指定一个或多个构造参数。
构造参数包含 COM 对象则直接传参,否则使用 JSON 转换为纯 JS 参数。
通过此对象的成员可调用 JavaScript 脚本中的同名全局函数,
也可在下标操作符中用一个指向函数对象的 JS 表达式以获取对应的调用函数,
参数自动转换为 JSON(支持单个参数),返回值自动解析 JSON
也可以将此对象作为函数调用,
传入 aardio 对象自动转换为 JScript 对象,
传入 JScript 对象时则返回 aardio 对象。
web.script.es6 直接支持 json 对象
设置或获取正在使用的 Script 语言名称
可选值"VBScript","JScript"。
注意 "ES6","JScript9" 只能在 web.script 构造函数里指定
组件模块集合
可使用 com.each 迭代器遍历
模块中定义函数的集合
重置脚本虚拟机,丢弃所有对象和代码
并将State属性设为0
获取属性时返回脚本对象
通过此对象可直接调用脚本中的函数,
写入属性时应使用字符串指定脚本代码,相当于调用 doScript 函数,
多次写入此属性是添加脚本不是覆盖替换脚本
读写脚本中的对象,
可调用脚本函数并返回值,支持不定个数参数
调用 Chakra(ES6)函数时不支持无参数函数,但可通 json 属性调用
脚本中显示UI的父窗口句柄
为0不转发事件
为1则转发事件
脚本超时时间,以毫秒为单位,默认为-1表示不超时,
如设置超时脚本运行太久会弹出是否继续运行的对话框
脚本控件是否限制运行未被标记为“脚本安全”的组件
运行 JS 函数,
Chakra(ES6)不支持无参数函数,但可通 json 属性调用