Javascript 在Chromium嵌入式框架中作为模块执行整个js文件
我正在使用C#(cefSharp)als测试平台中的Chromium嵌入式框架来测试我目前正在开发的软件。在这些测试中,我使用cefSharp在各种网站上注入我的js文件。到目前为止,我的软件由一个大的js文件组成,我能够以以下方式注入它Javascript 在Chromium嵌入式框架中作为模块执行整个js文件,javascript,module,cefsharp,chromium-embedded,Javascript,Module,Cefsharp,Chromium Embedded,我正在使用C#(cefSharp)als测试平台中的Chromium嵌入式框架来测试我目前正在开发的软件。在这些测试中,我使用cefSharp在各种网站上注入我的js文件。到目前为止,我的软件由一个大的js文件组成,我能够以以下方式注入它 //Wait for the MainFrame to finish loading Browser.FrameLoadEnd += (sender, args) => { //Wa
//Wait for the MainFrame to finish loading
Browser.FrameLoadEnd += (sender, args) =>
{
//Wait for the MainFrame to finish loading
if (args.Frame.IsMain)
{
byte[] bytes = File.ReadAllBytes("../../js/myJs.js");
string script = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
Browser.ShowDevTools();
Browser.ExecuteScriptAsync(script);
};
};
这个解决方案效果很好。
现在我重构了一些代码,并将js文件拆分为多个模块。
如果我以与前一个js文件相同的方式执行模块,我会立即收到错误,说明“导入语句只能在模块中使用”。(通常情况下,修复方法是简单地将js文件引用为html文件中的“模块”,而不是“text/javascript”),因为我是通过cef注入它的,我无法做到这一点。我的问题是:是否有可能通过cefSharp以模块的形式运行此js模块?您是否使用cefSharp?请添加相关标签。您可能可以使用资源处理程序为js提供服务,并执行js来创建html脚本标记。(假设您使用的是CefSharp)谢谢您的回答,是CefSharp,我添加了标记。您可以从risk为文件提供服务,就像发出网络请求一样,调用RegisterResourceHandler指定url和mimeType是一个选项。然后执行js从磁盘加载文件。*文件您可以将js转换为数据uri并调用导入,关于这方面的示例不多,我确实找到了一个,因此您必须进行测试并报告。