如何在Jint中从全局范围中获取所有变量(和函数名)
How to get all variables (and functions names) from the global scope in Jint?
我正在使用Jint,我想知道是否有一种方法可以从C#的角度获得脚本全局范围内可用的所有定义的变量和函数。
例如,给定文件"test.js"中的以下Javascript代码:
function globalFunc(a, b) {
var localVar = a + b;
return localVar;
}
var globalVar = 5;
并给出以下C#代码(使用Jint 2.4.0):
Jint.Engine engine = new Jint.Engine();
engine.Execute(System.IO.File.ReadAllText("test.js");
// the following method call do not exist in Jint, just here for example...
JsValue[] variables = engine.GetGlobalScopeVariables();
则期望变量包含两个值,即"Function"类型的名为"globalFunc"的变量和"Number"类型的名称为"globalVar"的变量。
预期的答案可能会导致一些金特黑客攻击。我对此也持开放态度。
谢谢!
在引擎中可以访问变量和函数。Global.Properties。但是,它也包含"系统变量"。
通过将执行脚本后字典中的条目与执行脚本前的条目进行比较,可以获得添加了哪些变量和函数的信息。
相关文章:
- 带有两个变量函数的Ajax提交表单
- 设置变量函数不起作用
- 为什么使用 ||在变量函数声明中
- Javascript 变量函数不保留值
- 为什么要在函数定义之外引用静态变量(函数属性)
- jQuery 变量函数无法运行
- 循环中的变量函数定义
- javascript onclick设置为变量函数名
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- Javascript测试存根全局变量函数
- Aptana能否识别其他文件中定义的变量/函数
- jquery将其传递给变量函数
- 传递一个变量函数到数组[Javascript]
- 如何使用' this '像一个对象,并通过字符串获得它的变量/函数
- javascript变量/函数的首字母是什么意思?
- Javascript .apply带有变量函数名
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- 变量函数未定义错误
- AngularJS-继续检查变量/函数
- Javascript从本地向全局变量函数添加行