You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

InvokeScriptAsync调用报错HRESULT:0x80020101,Chrome/IE中脚本可正常运行

解决InvokeScriptAsync调用报错HRESULT: 0x80020101的问题

我帮你梳理下这个问题的排查方向——这个错误码确实指向脚本执行异常,但既然你的JS在Chrome和IE里能正常跑,问题大概率出在WebView控件的执行环境和普通浏览器的差异上,尤其是在facebook.com这种有严格安全策略的站点,更容易触发这类问题。下面是几个常见的原因和对应的解决办法:

1. 页面未完全加载就执行脚本

Facebook的页面有大量异步加载的资源和DOM元素,如果你在页面还没加载完成时调用InvokeScriptAsync,脚本可能找不到依赖的对象,直接抛出语法/执行异常。

解决办法:

  • 监听WebView的NavigationCompleted事件,确认页面加载成功后再执行脚本:
webView.NavigationCompleted += async (sender, e) => 
{
    if (e.IsSuccess)
    {
        // 这里执行你的脚本
        await webView.InvokeScriptAsync("eval", new[] { "你的JavaScript代码" });
    }
};
  • 或者在脚本内部加上DOM就绪判断:
if (document.readyState === 'complete') {
    // 你的逻辑
} else {
    window.addEventListener('load', function() {
        // 你的逻辑
    });
}

2. WebView的安全策略与Facebook的CSP冲突

Facebook的内容安全策略(CSP)会严格限制脚本的来源和执行方式,WebView默认的安全设置可能会触发这些限制,导致脚本无法正常执行。

解决办法:

  • 检查WebView的安全配置:比如WebView2可以通过CoreWebView2Settings开启脚本权限,确保IsScriptEnabled设为true;
  • 如果你的脚本是注入式执行,尝试将脚本包装成符合CSP要求的形式,避免被拦截。

3. 脚本上下文或API兼容性问题

WebView的JS运行环境和普通浏览器可能存在差异,比如某些全局对象、API在WebView中不可用,或者变量作用域不同,导致脚本执行失败。

解决办法:

  • 给脚本加上兼容性检查,确保依赖的对象存在再执行:
(function() {
    // 先检查依赖对象是否存在
    if (typeof window.someRequiredObject !== 'undefined') {
        // 你的业务逻辑
    }
})();
  • 尽量使用标准JS API,避免依赖浏览器特有的扩展功能。

4. 脚本字符串的转义/编码错误

传递给InvokeScriptAsync的JS字符串如果包含特殊字符(比如单引号、双引号、换行),没有正确转义的话会直接导致语法错误。

解决办法:

  • 用序列化工具处理脚本字符串,确保转义正确:
using Newtonsoft.Json;

string rawJs = "console.log('Hello, Facebook!')";
// 自动处理转义
string escapedJs = JsonConvert.SerializeObject(rawJs);
await webView.InvokeScriptAsync("eval", new[] { escapedJs });

5. WebView控件版本问题

如果使用的是WebView2这类基于Chromium的控件,旧版本的运行时可能存在兼容性bug,导致在某些站点执行脚本失败。

解决办法:

  • 检查并更新WebView2 Runtime到最新版本;
  • 在代码中指定兼容的WebView2版本,避免自动使用旧版。

另外,你提到之前也遇到过同款错误,可以回顾下之前的解决场景,大概率是同一类环境或时机问题导致的,比如之前也是在有严格安全策略的站点执行脚本,或者加载时机没把控好。

内容的提问来源于stack exchange,提问作者MusicAndCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:08:45