聊做备忘。
假设js代码为:
string jsCode = @"function showAlert(s) {{ alert('hello, world! ' + s);}}; showAlert('{0}');";
那么,在WebBrowser文档加载完成后,两种方法可以执行它:
1、常规方法,追加script元素:
var script = browser.Document.CreateElement("script"); script.SetAttribute("type", "text/javascript"); script.SetAttribute("text", "function _func() {" + string.Format(jsCode, "method 1") + "}"); browser.Document.Body.AppendChild(script); browser.Document.InvokeScript("_func");
2、DomDocument法。此方法,须在程序中引用MSHTML对象。
ar doc = this.browser.Document.DomDocument as IHTMLDocument2; var win = doc.parentWindow as IHTMLWindow2; jsCode = string.Format(jsCode, "method 2"); win.execScript(jsCode, "javascript");
这两种方法,都 能成功执行js代码: