2012-04-28 81 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#获取与“嵌入”替换