2010-04-13 5 views
1

WebBrowser 컨트롤이 있고 모든 링크에서 onclick 및 href 특성을 설정하려고합니다.WebBrowser 컨트롤에서 JavaScript 이벤트 설정

foreach (HtmlElement link in webBrowser1.Document.Links) 
{ 
     link.SetAttribute("href", "http://www.google.com"); 
     link.SetAttribute("onclick", "return false;"); 
} 

잘 작동합니다. 내가 외부 HTML의 소스 코드를 볼 때 그 속성이 존재하는 것을 볼 수 있습니다. 그러나 JavaScript 코드가 작동하지 않습니다. 왜 그리고 어떻게 WebBrowser 컨트롤이 자바 스크립트 코드를 실행하도록 할 수 있습니까?

답변

2

onclick은 IDispatch 유형의 속성입니다. 속성에 매개 변수없이 함수를 할당하거나 HTML에 특성을 추가하고 파서가이 작업을 수행하도록 할 수는 있지만 DOM을 통해 문자열을 지정할 수는 없습니다.

IDispatch를 구현하는 개체와 기본 메서드 (dispid = 0)를 속성에 전달하거나 IHTMLElement2 :: attachEvent를 사용하여 이벤트 처리기를 연결할 수 있습니다. Microsoft의 클래스 라이브러리를 사용하는 경우 Windows Forms의 HtmlElement.AttachEventHandler 및 Silverlight의 HtmlElement.Attachevent와 같은 Microsoft의 래퍼를 사용할 수 있습니다.

관련 문제