目的:在CEF中允许JS跨域访问,即使用JS代码调用主页面的IFrame中的元素
解决方案:
1.在构造函数初始化方法中加入BrowserSettings的设置
BrowserSettings.WebSecurity = CefState.Enabled;
此方案方便快捷,简单又易用,如果没什么特殊情况,这样做就很好
2.将JS由主页面注入到对应的IFrame中,再由js去处理IFrame的元素
/// <summary>
/// 插入jsscript到iframe中
/// </summary>
/// <param name="script">脚本内容</param>
/// <param name="name">iframe的name值</param>
/// <param name="urlKeyWord">iframe的url特有的值</param>
/// <returns></returns>
public async Task ScriptInFrame(string script,string name ="",string urlKeyWord = "")
{
//this为cefBrowser
if (!string.IsNullOrEmpty(name))
{
//直接通过名称来查找
this.GetBrowser().GetFrame(name)?.ExecuteJavaScriptAsync(script);
}
else

本文介绍了在CEF(Chromium Embedded Framework)中解决跨域问题的两种方法:通过设置BrowserSettings允许JS跨域访问,或者通过主页面注入JS到IFrame并由JS处理元素。在实际应用中,作者建议使用注入JS的方式,以避免开启跨域可能导致的错误。
最低0.47元/天 解锁文章
3499

被折叠的 条评论
为什么被折叠?



