вызов функции JavaScript из vb6 - PullRequest
       3

вызов функции JavaScript из vb6

1 голос
/ 01 февраля 2011

Я написал много функций javascript, которые я хочу использовать в своем приложении vb6 для повышения эффективности и экономии времени

возможно ли вызвать функцию java-script из vb6?если возможно, можете ли вы помочь мне с кодом?

1 Ответ

2 голосов
/ 15 февраля 2011

Стесняюсь сказать это, но вы можете использовать элемент управления ActiveX Windows Script Control и встроить его в свое приложение 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

Было бы лучше перенести свои подпрограммы на VB6, и если вам нужен доступ к библиотеке регулярных выражений в VB6, есть лучшие способы:
http://support.microsoft.com/kb/818802

Добавить ссылкув регулярные выражения Microsoft VBScript 5.5, затем перенесите свой код ...

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...