10

ここでスレッドを検索しましたが、私がやろうとしていることにリモートで関連するものは見つかりませんでした。基本的には、onClick に javascript を使用して vbscript を呼び出したいと考えています。

Javascript の onmouseover および onmouseout イベントを使用するボタンから onClick イベントの aVBScript を呼び出す方法はありますか?

私はそれを機能させることができないようで、助けが必要です。以下は、私の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>

私がやりたいことは、ServiceNow OnClick イベントの vbscript を呼び出すことです。

私の 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 が閉じられました。" WScript.Quit End Sub

ご協力いただきありがとうございます。

4

2 に答える 2

6

はい、できます。このサンプルはonmouseover/outJS とonClickVBScript で使用します。

  <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>
于 2013-08-01T13:59:14.493 に答える
2

これが古いことは知っていますが、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 の両方を認識できるため、1 つのボタンを使用して「プロキシ」ボタンをトリガーし、それが VBScript を呼び出します。非表示の入力フィールドにドロップすることで、パラメーター (一種) を渡すこともできます。

私は上記をテストしていないので、間違いがある場合は申し訳ありませんが、理解してください!

于 2016-12-14T17:31:30.303 に答える