开发手册 欢迎您!
软件开发者资料库

.NET(C#) CefSharp 执行JS(JavaScript)代码及资源清理方法

CefSharp访问和操纵页面上的内容,可以以编程方式执行 JavaScript 并将其嵌入到页面中,并在触发JavaScript事件时接收回调。您可以使用CefSharp显示使用HTML5构建的嵌入式UI,或显示远程Web内容和Web应用程序。Google Chrome浏览器可以使用很多命令行(CommandLine)配置,有些更改功能的行为,而另一些则用于调试或试验。本文主要介绍.NET(C#)中, 使用CefSharp在后台执行JS(JavaScript)代码,以及清理释放资源的方法。

1、C#后台代码执行JS(JavaScript)代码

browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('testid').click();");  
browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('testid2').value='123'");

2、在其它IFrame中执行JS(JavaScript)代码

string script = "if(document.getElementById('img_out_10000')){ document.getElementById('img_out_10000').click(); }";  
var list = browser.GetBrowser().GetFrameNames();
if (list.Count > 1)
{
browser.GetBrowser().GetFrame(list[1]).ExecuteJavaScriptAsync(script);
}

3、资源清理释放

1) 浏览器本身处理

static ChromiumWebBrowser()  
{
if (CefSharpSettings.ShutdownOnExit)
{
Application.ApplicationExit += OnApplicationExit;
}
}
private static void OnApplicationExit(object sender, EventArgs e)
{
Cef.Shutdown();
}

2) 需要关闭浏览器负载程序时操作

try  
{
browser.CloseDevTools();
browser.GetBrowser().CloseBrowser(true);
}
catch { }
try
{
if (browser != null)
{
browser.Dispose();
Cef.Shutdown();
}
}
catch { }

相关文档:

https://github.com/cefsharp/CefSharp/wiki/Quick-Start

.Net(C#) cefsharp Chrome 浏览器控件后台执行Iframe中的Js代码的方法

.NET(C#) cefsharp 设置浏览器默认语言和userAgent及示例代码

.NET(C#) CefSharp CommandLine开关参数配置和读取网页源代码方法及示例代码

.NET(C#) CefSharp 下载获取页面中指定的文件图片视频等内容(.jpg、.js等)

.NET(C#) CefSharp 处理设置读取网站页面请求中的Cookie