如何从 jscript(或 vbscript)动态调用 COM 对象的方法?
JScript 允许像 .apply() 这样的时髦功能,您可以通过名称调用方法,传递参数数组来调用该方法。然而,这适用于 JScript (javascript) 对象,并且显然不适用于 COM 组件 - 但这正是我正在寻找的功能。
有没有办法通过 JScript 中的名称和动态参数来调用 COM 对象方法?我什么也没找到。
谢谢!
JScript allows funky features like .apply(), whereby you can invoke a method by name, passing an array of arguments to invoke the method with. However this applies to JScript (javascript) objects, and obviously won't work on a COM component - but this is the feature I am looking for.
Is there a way to invoke a COM object method, by name, and with dynamic args from JScript? I couldn't find anything.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
动态构建要作为字符串调用的脚本,然后使用 eval() 调用它。例如
eval("someObj.method()")
或eval(objName + "." + methodName + "(" + args.join(",") +")")< /代码>。
Dynamically build the script you want to call as a string then invoke it using eval(). eg
eval("someObj.method()")
oreval(objName + "." + methodName + "(" + args.join(",") +")")
.由于我使用的是 WSC(Windows 脚本组件),因此我采取了一种解决方法,即使用 XSL 生成包装器脚本,并转换输入 WSC(这是一个 XML 文件)。 XSL 生成一个 switch{} 语句,其中每个方法都有一个 case,为每个方法提供正确数量的参数。
不完全是我想要的,但我得到了更好的错误检查:)
Since I'm using WSC (Windows Script Component) I have made a workaround whereby I generate a wrapper script using XSL, transforming the input WSC (which is an XML file). The XSL generates a switch{} statement with a case for each method, supplying the correct number of args for each method.
Not quite what I was after, but I get better error checking :)