2013-08-01 26 views
8

Tôi đã tìm kiếm các chủ đề ở đây nhưng không thể tìm thấy bất cứ điều gì từ xa liên quan đến những gì tôi đang cố gắng để làm. Về cơ bản tôi muốn gọi VBScript bằng cách sử dụng javascript cho onClick.Làm thế nào tôi có thể gọi VBScript từ Javascript

Có cách nào để gọi aVBScript cho sự kiện onClick từ nút sử dụng các sự kiện onmouseover và onmouseout không?

Tôi dường như không làm cho nó hoạt động và cần trợ giúp. Dưới đây là một đoạn mã javascript của tôi và cũng vb script tôi muốn gọi ra:

đang

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> 

gì tôi muốn làm là gọi ra cho VBScript cho ServiceNow OnClick biến cố.

VBScript của tôi: WScript.Quit chính

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 đóng trước khi kịch bản hoàn thành." WScript.Quit End Sub

Cảm ơn bạn cho bất kỳ giúp bạn có thể cung cấp

+0

\t \t Drew

+1

ewww .... người vẫn sử dụng VBScript trong trình duyệt ??? Sao bạn lại làm một điều như vậy chứ? – Spudley

+0

@Spudley legacy code? –

Trả lời

5

Có bạn có thể làm điều đó, mẫu này sử dụng onmouseover/out trong JS và onClick trong VBScript.

<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

Đó là công trình !!! Cảm ơn nhiều!! Bạn là một người tiết kiệm cuộc sống !!! – Drew

+0

Không sao cả :) Rất vui được giúp đỡ. –

+2

Đây không phải là gọi VBScript từ JavaScript, nó được gọi là VBScript từ một người nghe sự kiện DOM. – cchamberlain

1

Tôi biết điều này cũ nhưng tôi đang tìm cách gọi VBScript cũ từ các trang mới hơn được viết bằng javascript. Tôi sử dụng một cái gì đó như:

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

Và sau đó trong 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"/> 

phần tử DOM có thể nhìn thấy cả hai javascript và vbscript, vì vậy tôi sử dụng một nút để kích hoạt nút "proxy", mà lần lượt gọi VBScript. Bạn thậm chí có thể chuyển các tham số (loại) bằng cách thả chúng vào các trường nhập ẩn.

Tôi đã không kiểm tra ở trên, vì vậy xin lỗi nếu có bất kỳ sai lầm nào, nhưng bạn có ý tưởng!

Các vấn đề liên quan