从vb6调用javascript函数

从vb6调用javascript函数,javascript,vb6,Javascript,Vb6,为了提高效率和节省时间,我已经编写了很多javascript函数,希望在vb6应用程序中使用这些函数 是否可以从vb6调用java脚本函数? 如果可能的话,你能帮我写一些代码吗?我不太愿意这么说,但是你可以使用Windows脚本控件ActiveX控件并将其嵌入到VB6应用程序中,然后运行javascript代码,可能需要做一些小的调整,但不要这样做。您可能认为它对您来说是高效和省时的,但事实是您将花费各种额外的时间处理“变通方法”。此外,将代码移植到VB6将使其运行得更快。如果您需要某种扩展性,

为了提高效率和节省时间,我已经编写了很多javascript函数,希望在vb6应用程序中使用这些函数

是否可以从vb6调用java脚本函数?
如果可能的话,你能帮我写一些代码吗?

我不太愿意这么说,但是你可以使用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