function test() {
return "123"
}
VB 中调用
WebBrowser1.Document.InvokeScript("test")
Dim code As ObjectSet code = CreateObject("ScriptControl")
code.Language = "JavaScript"
查询一下如何使用 VBS ScriptControl
VB/VBS 动态执行 代码
我们有时候需要在程序中动态执行一段string类型的代码,类似js中的eval函数,
下面的操作可以满足这一要求。
(有一点要注意,ScriptControl 调用的是vbs,有的vb的函数不能用,如val )
我们需要使用ScriptControl
在部件中添加MS Script Control 1.0
在窗体中添加一个MS Script Control
使用方法如下:
ScriptControl1.Language = "VBScript" '定义语言
ScriptControl1.AddObject "Text1", Text1 '添加控件,否则在执行时无法调用,
'需要什么控件添加什么就行
ScriptControl1.ExecuteStatement("Text1.Text=""12345""") '执行语句
也可以用ScriptControl1.AddCode来添加函数
如:
ScriptControl1.AddObject "Label1", Label1
ScriptControl1.AddCode "sub Test() label1=""hello"" end sub" '定义了一个函数test
ScriptControl1.Run ("test") '调用函数test甚至可以给添加的函数加上参数,如:
ScriptControl1.AddObject "Label1", Label1
ScriptControl1.AddCode "sub test(str)" &vbCrLf &" label1=str " &vbCrLf &" end sub"
ScriptControl1.Run "test", "Hello" '第二个参数是一个Variant型的数组,用来传递函数test的参数
试试这个 Private Function Unescape(ByVal pstrInput As String) As StringDim objScrCtl As Object
Set objScrCtl = CreateObject("MSScriptControl.ScriptControl")
objScrCtl.Language = "JavaScript"
Unescape = objScrCtl.Eval("unescape('" &pstrInput &"')")
Set objScrCtl = Nothing
End Function