WPF+CEF 执行JS报错

WPF+CEF 执行JS报错

在WPF中执行 webBrowser.EvaluateScriptAsync("window.scrollBy(0, 1000);");

在部分网站会报异常:
Request BrowserId : XXXX not found it's likely the browser is already closed


环境

.Net Framework 4.7

CefSharp.Wpf 131.3.50

解决方案:

使用CEF的控制台去执行

xml 复制代码
// xaml 页面
<cef:ChromiumWebBrowser x:Name="webBrowser" />
csharp 复制代码
//using CefSharp.Wpf;

public static async Task<ResultInfo> GetEvaluateJsAsync(ChromiumWebBrowser webBrowser, string js)
{
    var res = new ResultInfo() { Success = false };
    try
    {
        if (webBrowser == null || webBrowser.IsDisposed)
            return res;

        var client = webBrowser.GetDevToolsClient();
        if (client == null)
            return res;

        var result = await client.Runtime.EvaluateAsync(js, null, true, null, null, true, null, true);
        if (result == null || result.ExceptionDetails != null)
            return res;
        res.Result = result.Result.Value?.ToString();
        res.Success = true;
        return res;
    }
    catch (Exception ex)
    {
        res.Result = ex.Message;
        return res;
    }
}

 public class ResultInfo
 {
     public bool Success { get; set; }
     public string Result { get; set; }
 }
相关推荐
赵财猫._.4 小时前
HarmonyOS内存优化实战:泄漏检测、大对象管理与垃圾回收策略
华为·wpf·harmonyos
赵财猫._.4 小时前
鸿蒙超级终端体验:无缝流转的底层实现与用户体验优化
wpf·harmonyos·ux
故事不长丨4 小时前
C#委托的使用
c#·wpf·winfrom·委托·网站开发
行走正道7 小时前
【探索实战】跨云应用分发自动化实战:基于Kurator的统一交付体系深度解析
运维·自动化·wpf·kurator·跨云分发
Macbethad11 小时前
基于WPF的Ethernet/IP主站程序技术方案
网络协议·tcp/ip·wpf
张人玉15 小时前
Prism Template Pack 完整使用示例(VS2022 + .NET 8 + DryIoc)
.net·wpf·prism
棉晗榜15 小时前
wpf 在XAML中配置视图模型,通过 d:DataContext设置设计时类型,方便按F12跳转查看类型
wpf
赵财猫._.18 小时前
HarmonyOS渲染性能优化:组件树复用与局部刷新机制
wpf·harmonyos·ux
赵财猫._.18 小时前
鸿蒙分布式数据库同步:冲突解决与数据一致性策略
wpf·harmonyos·ux
Macbethad1 天前
使用WPF编写一个数据记录页面
wpf