2012-04-28 78 views
2

我正在使用WPF WebBrowser控件,並且想要訪問某些JavaScript函數,但存在這個問題。C#WPF WebBrowser控件:How to use JavaScript

我可以使用InvokeScript和執行browser.InvokeScript(「警報」,「你好」); Q,但如何通過ID或標籤,如何到該元素的JavaScript變種分配得到元素?

例如: Javascript: var elements = document.getElementsByTagName(「embed」); elements [0] .doSomething();

C#: 如何?

我嘗試了一切,但沒有任何工作。誰能幫我:(

回答

1

相當晚的答案,但如果其他人需要它:

直接C#:http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.getelementsbytagname.aspx

HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("embed"); 
foreach (HtmlElement elem in elems) 
    { 
     elem.InvokeMember("doSomething"); 
    } 

另一種選擇:http://msdn.microsoft.com/en-us/library/a0746166

基本上你應該創建JS中的一個函數:

var myCustomFunc = function(tagName) { 
    var elements = document.getElementsByTagName(tagName); elements[0].doSomething(); 
} 

然後與

webBrowser1.Document.InvokeScript("myCustomFunc ", new String[] { "embed" }); 

變量「變量名」調用它從C#獲取與「嵌入」替換