2013-08-01 68 views
8

我在这里搜索了线程,但找不到任何与我正在尝试做的事情有关的任何东西。基本上我想用onClick来调用JavaScript脚本。我怎么能从Javascript调用VBscript

有没有办法从使用Javascript onmouseover和onmouseout事件的按钮为onClick事件调用VBScript?

我似乎无法得到它的工作,需要帮​​助。下面是我的javascript代码片段,也VB脚本我想叫出来:

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> 

我想要做的是调出该VBScript中的的ServiceNow的OnClick事件。

我的VBScript: WScript.Quit主要

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 

上的错误继续下一步 WScript.StdErr.WriteLine “IE关闭脚本完成之前。” WScript.Quit 结束小组

感谢您的帮助,您可以提供

+0

\t <输入的onMouseOver = “window.status = me.value” 的onmouseout = “window.status = ''” 的onMouseOver = “window.status = me.value” 的onmouseout =” window.status =''“type =”button“value =”模拟“class =”redBtn“onClick =”openPopup('http://internal.mps.cardinal.net/cardcom/index.asp')“/> \t <输入的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')“/> – Drew

+1

ewww ....人在浏览器中仍然使用VBScript?你为什么要做这样的事情? – Spudley

+0

@Spudley旧版代码? –

回答

5

是的,你可以做到这一点,这个示例使用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> 
+1

这是行得通!非常感谢你!!你是一个拯救生命的人! – Drew

+0

没问题:)很高兴帮助。 –

+2

这不是从JavaScript调用VBScript,而是从DOM事件监听器调用VBScript。 – cchamberlain

1

我知道这是旧的,但我一直在寻找一种方式来调用使用JavaScript编写的新页面遗留的VBScript。我使用的是这样的:

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

然后在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元素可以看到JavaScript和VBScript中,所以我用一个按钮,触发一个“代理”按钮,这又调用VBScript。你甚至可以通过将它们放入隐藏的输入字段来传递params(类)。

我没有测试上述,所以如果有任何错误,请道歉,但你明白了!