2012-07-20 2 views
0

WPF 페이지에서 호스팅되는 WebBrowser 컨트롤이 있습니다. JavaScript 함수가 WPF 프로그램에서 이벤트를 호출 할 수있는 방법이 있는지 궁금합니다.WPF를 사용하여 WebBrowser 컨트롤에서 호스팅되는 JavaScript의 이벤트를 처리합니다.

 mshtml.HTMLButtonElementEvents_Event iEvent; 
     iEvent = (mshtml.HTMLButtonElementEvents_Event)ele; 
     iEvent.onclick += new HTMLButtonElementEvents_onclickEventHandler(ClickEventHandler); 
     ... 

    private bool ClickEventHandler() 
    { 
     MessageBox.Show("WPF Event Handler"); 
     return true; 
    } 

: 나는 버튼을 이런 식으로 이벤트를 후크하려고했습니다

<button style="height:100;width:100" id="initButton" onclick="alert('hello');" /> 

WPF 코드 :

나는 WebBrowser 컨트롤의 웹 페이지에 버튼이 있습니다 다음과 같은 내 자바 스크립트 함수에서 온 클릭 전화 :

function SomeEvent(sender, e) { 
    alert('JS event handler'); 
    document.getElementById("initButton").onclick(); 
} 

나는 B를 누르면 WPF 코드를 호출 utton하지만 SomeClick에서 onclick이 호출 될 때는 그렇지 않습니다.

더 간단한 방법이 있나요? 첨부 된 WPF 첨부 이벤트가 호출되도록 JS에서 onclick 이벤트를 호출하는 더 좋은 방법이 있습니까?

답변

0

ObjectForScripting 은 다음과 같습니다

WebBrowser 제어는 ObjectForScripting 속성이 있습니다 대답은입니다. 편의를 위해, 여기에 윈폼 예제에 대한 링크입니다 (나도 WPF를 사용하고는 있지만, WPF 페이지에는 예 없음) :

그것은 가치가 무엇인지에 대한

https://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.objectforscripting(v=vs.110).aspx

, 나를 위해 작동하지 않았다가 내 메인 윈도우를 ObjectForScripting으로 설정합니다. 어떤 종류의 FrameworkElement 객체를 ObjectForScripting으로 사용할 수 있다고는 생각하지 않습니다.

관련 문제