更改 js.browser_update 文本在无 JS 视图中不会生效

  1. 在“自定义”>“文本”中更改 js.browser_update

  2. 在 IE10 中打开 Discourse。

  3. 显示默认消息而非自定义消息。

据我所知,JS 文本自定义功能运行在 JavaScript 中。由于我们针对旧浏览器的模式是纯 HTML,不包含 JavaScript,因此任何 JS 代码都无法在其中运行。这是预期行为。

已在此处设置。https://github.com/discourse/discourse/blob/master/vendor/assets/javascripts/browser-update.js.erb#L29

因此它应该适用。:man_shrugging:

哦,这已经行不通了,因为我们正在移除所有全局变量,I18n 是上周被移除的最后一个。

重建后它可能会生效 @zcuric

很遗憾,问题仍未解决。我们今天发布了新版本并重新构建了应用,但情况依旧。

我遇到了同样的问题。起初我以为修改 js.browser_update 后,它在旧浏览器上确实显示了(但现在我不完全确定了),但今天我看到它显示的是原始文本。有没有什么解决办法……或许可以特殊处理这条消息?毕竟,当这条消息显示时,JavaScript 通常并未启用?或者能否编写一个简短的插件?

您之所以会在一个浏览器上看到此功能,而在另一个浏览器上看不到,可能是因为一些非常旧的浏览器不支持客户端翻译,而另一些则支持。

我们首先尝试运行翻译,如果失败,则回退到硬编码的英文默认消息实例:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/scripts/browser-update.js#L50

不幸的是,我们对此也无能为力。希望人们最终会淘汰那些旧浏览器。