简体   繁体   English

如何从Javascript调用VBscript

[英]How can i call VBscript from Javascript

I have searched the threads here but could not find anything remotely related to what i am trying to do. 我在这里搜索了线程,但找不到任何与我想做的事情有关的东西。 Basically i want to call vbscript using javascript for the onClick. 基本上我想使用javascript为onClick调用vbscript。

Is there a way to call aVBScript for the onClick event from a button that uses Javascript onmouseover and onmouseout events? 有没有办法从使用Javascript onmouseover和onmouseout事件的按钮调用onClick事件的aVBScript?

I can't seem to get it to work and need help. 我似乎无法让它工作并需要帮助。 Below is a snippet of my javascript code and also vb script i would like to call out to: 下面是我的javascript代码片段以及我想呼叫的vb脚本:

Javascript code: Javascript代码:

<td align="center">
    <input onMouseOver="window.status=me.value" onMouseOut="window.status=''" onMouseOver="window.status=me.value" onMouseOut="window.status=''" type="button" value="Impersonation" class="redBtn" onClick="openPopup('http://internal.mps.cardinal.net/cardcom/index.asp')" />
   </td>
   <td align="center">
    <input onMouseOver="window.status=me.value" onMouseOut="window.status=''" onMouseOver="window.status=me.value" onMouseOut="window.status=''" type="button" value="ServiceNow" class="normalBtn" onClick="openPopup('https://cardinal.service-now.com/navpage.do')" />
   </td>

What i would like to do is call out to the vbscript for the ServiceNow OnClick event. 我想做的是调用ServiceBow OnClick事件的vbscript。

My VBscript: WScript.Quit Main 我的VBscript:WScript.Quit Main

Function Main
Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")
IE.Visible = True
IE.Navigate "https://cardinal.service-now.com/navpage.do"
Wait IE

With IE.Document
On Error Resume Next
  .GetElementsByName("EnterpriseID")(0).value = "admin"
  .GetElementsByName("PASSWORD")(0).value = "admin"
End With

IE.Document.getElementByID("SignInBtn").Click

End Function

Sub Wait(IE)
Do
WScript.Sleep 500
Loop While IE.ReadyState < 4 And IE.Busy 
Do
WScript.Sleep 500
Loop While IE.ReadyState < 4 And IE.Busy 
End Sub

Sub IE_OnQuit

On Error Resume Next WScript.StdErr.WriteLine "IE closed before script finished." On Error Resume Next WScript.StdErr.WriteLine“IE在脚本完成之前关闭。” WScript.Quit End Sub WScript.Quit End Sub

Thank you for any help you can provide 感谢您提供任何帮助

Yes you can do that, this sample uses onmouseover/out in JS and onClick in VBScript. 是的,你可以这样做,这个示例使用JS中的onmouseover/out和VBScript中的onClick

  <script type="text/vbscript">
      Function MyVbAlert()
        MsgBox("Hello from VB Script!")
      End Function
  </script>

   <script type="text/javascript">

       function myJsMouseOver(c) {
            c.style.color = 'green'    
       }

       function myJsMouseOut(c) {
           c.style.color = 'black'
       }

   </script>


    <span onclick="MyVbAlert()" onmouseover="myJsMouseOver(this)" onmouseout="myJsMouseOut(this)" >Click Me</span>

I know this is old but I was looking for a way to call legacy VBScript from newer pages written with javascript. 我知道这已经过时了,但我正在寻找一种方法来从使用javascript编写的新页面调用旧版VBScript。 I used something like: 我使用了类似的东西:

<script language="javascript" type="text/javascript">
function clickProxy() {
    document.getElementById("vbProxy").click(); // initiate click event on the button
}
</script>

<script language="vbscript" type="text/vbscript">
function runVB()
    msgbox "VBScript!"
end function
</script>

And then in the HTML: 然后在HTML中:

<input type="button" id="vbProxy" onclick="vbscript: runVB" value="VB Proxy" style="height:0px;width:0px"/>
<input type="button" onclick="clickProxy()" value="Click Me" style="height:0px;width:0px"/>

DOM elements can see both javascript and vbscript, so I used one button to trigger a "proxy" button, which in turn calls the VBScript. DOM元素可以同时看到javascript和vbscript,因此我使用一个按钮来触发“代理”按钮,该按钮又调用VBScript。 You could even pass params (sort of) by dropping them into hidden input fields. 您甚至可以通过将params放入隐藏的输入字段来传递params(类型)。

I didn't test the above, so apologies if there are any mistakes, but you get the idea! 我没有测试上面的内容,所以如果有任何错误就道歉,但你明白了!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM