2009-11-30 2 views
0

인트라넷에서 vbScript 함수가있는 HTML 페이지를로드하는 WPF WebBuilder가 있습니다. 이 함수 중 하나를 실행하고 반환 값을 검색하려고합니다.WPF WebBrowser가 VBScript를 호출하고 반환 값을 검색합니다.

불행하게도 나는 인트라넷 페이지

함수는 부울 값을 반환하고

Function IsAltered(strMode) 

' This procedure checks to see if Changes have been made without saving. 
Dim objItem, blnIsAltered 
IsAltered = False 
blnIsAltered = False 

For Each objItem In window.document.all 
    If (objItem.tagName = "INPUT" And objItem.className <> "Lbl" And objItem.className <> "NAF" And objItem.className <> "PreDispNoChange") Or _ 
     objItem.tagname = "SELECT" Or objItem.tagname = "TEXTAREA" Then 
     If Left(objItem.Id, 3) <> "hid" And objItem.Type <> "hidden" And objItem.Style.Visibility <> "hidden" Then 
      If HasValueChanged(ObjItem.Id, Trim(objItem.Value)) Then 
       blnIsAltered = True 
       Exit For 
      End if 
     End If 
    End If 
Next 
IsAltered = blnIsAltered End Function 

누군가가이

감사

을 구현하는 방법을 제안 할 수 다음과 같다을 변경할 수 없다

감사합니다.

Col

답변

0

System.Windows.Controls.WebBrowser에는 "현재로드 된 문서에 의해 구현되는 스크립트 함수를 실행합니다."라는 설명서에 따라 InvokeScript라는 메서드가 있습니다.

시도해 볼 수 있습니다.

+0

나는 이것을 사용하여 시도했지만 두 가지 문제) 나는 다음과 같은 오류 님에게 메일 "알 수없는 이름 (HRESULT에서 예외 : 0x80020006 (DISP_E_UNKNOWNNAME).)"얻고있다 2) 무효의 반환이 invokeScript에 함수가 true 또는 false를 반환하는지 확인할 수 없습니까? 감사합니다. Colm – Colmdoc

+0

분명히 WPF WebBrowser 컨트롤에 몇 가지 문제가 있습니다. WPF와 WinForms 버전 간의 차이점에 대한 StackOverflow 문제를 참조하십시오 (여백 참조). WebBrowser의 WinForms 버전으로 전환 할 수 있습니다. WinForms 구성 요소를 WPF에 임베드하는 것이 비교적 쉽다는 것을 잊지 마십시오. 그렇게하면 HTML DOM에 대한 완전한 액세스 권한을 얻을 수 있습니다. – kmontgom

+0

감사 드리며 다시 연락 드리겠습니다 – Colmdoc

관련 문제