VB 如何调用 js 的方法

JavaScript017

VB 如何调用 js 的方法,第1张

html 的 方法

function test() {

return "123"

}

VB 中调用

WebBrowser1.Document.InvokeScript("test")

Dim code As Object

Set 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 String

Dim objScrCtl As Object

Set objScrCtl = CreateObject("MSScriptControl.ScriptControl")

objScrCtl.Language = "JavaScript"

Unescape = objScrCtl.Eval("unescape('" &pstrInput &"')")

Set objScrCtl = Nothing

End Function