很多文章都是好介绍C# 后台cs和js如何交互,cs调用js方法(js方法必须是页面上存在的,已经定义好的),js调用cs方法,
但如果想用cs里面执行动态生成的js代码,如何实现呢?
思路大致是这样的,cs动态插入js到html上,cs执行html插入的js方法代码。
封装好的方法:
/// <summary>
/// webbrowser执行脚本
/// </summary>
/// <param name="web">传入WebBrowser 控件</param>
/// <param name="javascript">js代码</param>
public static void ExecuteJavascript(WebBrowser web, string javascript)
{
HtmlElement script = web.Document.CreateElement("script");
script.SetAttribute("type", "text/javascript");
script.SetAttribute("text", "function _func(){" + javascript + "}");
HtmlElement head = web.Document.Body.AppendChild(script);//页面插入定义的一个js方法
web.Document.InvokeScript("_func");//执行js方法
}
使用:ExecuteJavascript(web,"alert('1')");