揰掵佲 发表于 2020-11-17 11:37:17

类_JavaScriptTools模块开源

.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 JsTools, 类_JavaScriptTools
.程序集变量 Error, ErrorInfo
.程序集变量 ResInfo, ResInfo

.子程序 _按钮_加载代码_被单击

JsTools.reset ()
.如果真 (取反 (JsTools.execJs (编辑框1.内容)))
    ErrorMsg ()
    返回 ()
.如果真结束
信息框 (“Js加载成功”, 0, “提示”, _启动窗口)

.子程序 ErrorMsg
.局部变量 ErrorStr, 文本型

Error = JsTools.getErrorInfo ()
ErrorStr = “发现错误: ” + #换行符 + “第 ” + 到文本 (Error.Line) + “ 行 第 ” + 到文本 (Error.Column) + “ 列” + #换行符 + “错误代码: ” + 到文本 (Error.Code) + #换行符 + “错误信息: ” + Error.Msg
信息框 (ErrorStr, #错误图标, “错误提示”, _启动窗口)


.子程序 _按钮_列举所有函数_被单击
.局部变量 Procedures, Procedures, , "0"
.局部变量 Count, 整数型
.局部变量 Index, 整数型
.局部变量 ProceduresStr, 文本型

Count = JsTools.getProcedures (Procedures)
.计次循环首 (Count, Index)
    ProceduresStr = ProceduresStr + Procedures .ItemName + “(” + 到文本 (Procedures .ItemNumArgs) + “)” + #换行符
.计次循环尾 ()
信息框 (ProceduresStr, 0, “函数列表”, _启动窗口)

.子程序 _按钮_查看代码对象_被单击

JsTools.getCodeObject ().查看 ()


.子程序 _按钮_Eval表达式运行_被单击

ResInfo = JsTools.eval (编辑框2.内容)
.如果真 (ResInfo.RunBool = 假)
    ErrorMsg ()
    返回 ()
.如果真结束
信息框 (“计算结果: ” + ResInfo.Value + #换行符 + “返回类型: ” + 到文本 (ResInfo.ResTypeName), 0, “提示”, )
.如果真 (ResInfo.ResType = #ResType_Object)
    ResInfo.ResObj.查看 ()
.如果真结束


.子程序 _按钮_Eval对象运行_被单击

ResInfo = JsTools.evalObj (JsTools.getCodeObject (), #EvalType_String, “getMd5”, “11111”, “22222222222”)
.如果真 (ResInfo.RunBool = 假)
    ErrorMsg ()
    返回 ()
.如果真结束
信息框 (“计算结果: ” + ResInfo.Value + #换行符 + “返回类型: ” + 到文本 (ResInfo.ResTypeName), 0, “提示”, )



写这个模块的目的是为了更快速的编写JS调试工具(针对易语言,其他的语言应该也有类似的方法)
模块功能介绍
1.execJs                     执行JS代码,执行失败会返回错误信息,相当于JS调试工具中的 加载代码
2.getProcedures         获取所有的函数,相当于JS中加载代码后 获取所有的函数,方便调用
3.eval                         运行JS代码,相当于JS调试工具中的系统运行
4.getErrorInfo            当 execJs evalevalObj 返回失败的时候,可以获取错误信息
5.getCodeObject       获取代码对象,也就是加载的整个JS对象
6.evalObj                  通过代码对象执行函数,详情参照 <JavsScriptTools演示.e> 中的源码
7.getThis                  获取整个脚本对象,方便扩展命令
8.reset                     清除加载的JS对象,但不销毁









**** Hidden Message *****

zxjzzh 发表于 2020-11-17 21:24:09

太好了,谢谢楼主。

不苦小和尚 发表于 2020-12-23 19:21:56

谢谢分享,不错不错,就要塌了

虚伪 发表于 2020-12-25 22:17:36

LZ,辛苦了

futiem 发表于 2021-1-26 18:50:50

类_JavaScriptTools模块开源

jsoqtjla 发表于 2023-12-24 03:35:36

类_JavaScriptTools模块开源

35580930 发表于 2024-4-23 22:50:18

太好了,谢谢楼主。
页: [1]
查看完整版本: 类_JavaScriptTools模块开源