从vb6调用javascript函数
为了提高效率和节省时间,我已经编写了很多javascript函数,希望在vb6应用程序中使用这些函数 是否可以从vb6调用java脚本函数?从vb6调用javascript函数,javascript,vb6,Javascript,Vb6,为了提高效率和节省时间,我已经编写了很多javascript函数,希望在vb6应用程序中使用这些函数 是否可以从vb6调用java脚本函数? 如果可能的话,你能帮我写一些代码吗?我不太愿意这么说,但是你可以使用Windows脚本控件ActiveX控件并将其嵌入到VB6应用程序中,然后运行javascript代码,可能需要做一些小的调整,但不要这样做。您可能认为它对您来说是高效和省时的,但事实是您将花费各种额外的时间处理“变通方法”。此外,将代码移植到VB6将使其运行得更快。如果您需要某种扩展性,
如果可能的话,你能帮我写一些代码吗?我不太愿意这么说,但是你可以使用Windows脚本控件ActiveX控件并将其嵌入到VB6应用程序中,然后运行javascript代码,可能需要做一些小的调整,但不要这样做。您可能认为它对您来说是高效和省时的,但事实是您将花费各种额外的时间处理“变通方法”。此外,将代码移植到VB6将使其运行得更快。如果您需要某种扩展性,我只会使用脚本方法 添加对脚本运行时和脚本控件1.0的引用。
注意:在本例中,变量scode是作为字符串传递给函数的javascript代码。但是,由于代码只是一个字符串,您可以传入任何想要的变量,因此从代码中获取内容要复杂得多。代码可以动态创建,也可以从文本文件中检索 在本例中,代码作为字符串传递,然后搜索字符串以查看它是否包含名为OnProgramLoad的函数。如果是,则调用该函数
Public Sub OnProgramLoad(byval scode as string)
Dim sctest As ScriptControl
If Len(scode) < 1 Then Exit Sub
If InStr(1, scode, "OnProgramLoad", vbTextCompare) = 0 Then Exit Sub
Set sctest = New ScriptControl
With sctest
.Language = "JScript"
.AllowUI = True
.AddObject "Application", App
.AddObject "Clipboard", Clipboard
.AddObject "Printer", Printer
.AddObject "Screen", Screen
.AddCode scode
.Run "OnProgramLoad"
End With
Set sctest = Nothing
End Sub
如果在vb中需要它们,为什么要用javascript编写它们?我曾经在javascript中使用过它们。JavaScript在字符串处理方面似乎比vb更快,因为它支持现成的正则表达式。在vb中,您必须使用脚本控件,这会导致性能问题。是否可以将参数传递给javascript代码?如果是的话,请给出一些非常值得欣赏的示例。javascript代码是一个简单的字符串,因此您可以通过修改字符串来传递它。请参见上面示例中的注释
Function TestRegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
' Create a regular expression object.
Set objRegExp = New RegExp
'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern
' Set Case Insensitivity.
objRegExp.IgnoreCase = True
'Set global applicability.
objRegExp.Global = True
'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.
For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
TestRegExp = RetStr
End Function