CefSharp 语言列表设置不影响 JavaScript

我希望能够更改浏览器窗口使用的语言(并重新加载页面,而无需重新启动应用程序)。我目前使用的是 CefSharp 69。

我的第一次尝试是在设置中使用不同的 Cef.Shutdown() 调用 Cef.Initialize() 然后再次调用 Locale(因为这似乎是设置该值的唯一方法)。 (当然,首先关闭所有现有的浏览器,然后再创建它们。)但是,似乎在关闭后调用 Initialize 会因非托管内存异常而崩溃,所以这是不行的。 (这似乎是一个错误。)

我的第二次尝试是在创建浏览器之后但在导航之前设置 browser.BrowserSettings.acceptLanguageList。虽然这似乎确实按预期更新了 accept-Language 标头中发送的值,但它对结果页面上的 JS navigator.languagesnavigator.language 属性完全没有任何作用,它们仍然报告旧语言. (这似乎是另一个错误。)

我的第三次尝试是设置 RequestContext,然后为 intl.accept_languages 调用 SetPreference。这确实设置了 JS navigator.languagesnavigator.language,但不发送任何 accept-Language 标头。 (这似乎是另一个错误。)

因此,目前我通过同时第二和第三件事,设法拼凑出一些似乎按预期工作的东西,但这似乎完全荒谬。


我随后尝试更新到 CefSharp 91(目前可用的最新版本)。这几乎是相同的,除了设置 intl.accept_languages 现在似乎可以同时做这两件事,而设置 acceptLanguageList 仍然只影响请求标头而不影响 JS。

zerowang1985 回答:CefSharp 语言列表设置不影响 JavaScript

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/12361.html

大家都在问