2010-07-23 4 views
2

WebBrowser 컨트롤이있는 데스크톱 응용 프로그램이 있고로드 된 페이지에 JavaScript를 삽입하려고합니다. 이를 위해런타임시 jQuery를 사용하여 JavaScript를 WebBrowser에 삽입

나는이 개 스크립트 요소를 추가 :

private static void AddJQueryElement(HtmlElement head) 
{ 
    HtmlElement scriptEl = head.Document.CreateElement("script"); 
    IHTMLScriptElement jQueryElement = (IHTMLScriptElement)scriptEl.DomElement; 
    jQueryElement.src = @"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"; 

    head.AppendChild(scriptEl);   
} 

private static void AddScriptElement(HtmlElement head) 
{ 
    HtmlElement scriptEl = head.Document.CreateElement("script"); 
    IHTMLScriptElement myScriptElement = (IHTMLScriptElement)scriptEl.DomElement; 
    myScriptElement.src = @"file:///c:\JScript.js"; 
    head.AppendChild(scriptEl); 
} 

방법을 먼저 볼 수 있습니다 내 스크립트에서 사용하기 때문에 jQuery를 참조입니다. _webBrowser.Document.InvokeScript을 사용하여 스크립트에서 함수를 호출하려고하면 WebBrowser가 스크립트 오류 : "Object expected"를 throw합니다. jQuery (var tags = $("Body").find("*");)를 사용하려고하는 행을 가리 킵니다.

이 오류를 방지하려면 어떻게해야합니까?

또 다른 흥미로운 점은 : alert("hello");과 같은 것을 추가하면 모든 기능이 제대로 작동합니다.

답변

1

정답은 없지만 jquery.min.js의 로컬 복사본을 사용하여 문제를 해결했습니다.

+1

안녕하세요 오솔, 어떻게 웹 페이지에 연결했는지 알려주실 수 있습니까? 응용 프로그램이 페이지에 연결되는 방식을 의미합니다. 나는 그것을 정말로하고 싶다. 그러나 그것을하는 방법을 이해할 수 없다. – Johnydep

+0

WebBrowser 컨트롤에서 페이지를로드합니다. –

+0

로컬 복사본을 어떻게로드하는지 코드를 넣을 수 있습니까? – MonsterMMORPG

0

로드 중에 실행할 스크립트를 지정하지 않았을 수 있습니다. alert ("hello")는 스크립트를 다운로드하고 HTML을 완성하는 데 필요한 시간을 사려고합니다.

관련 문제