我想根据客户端的浏览器语言更改网页的正文类:
var lang = navigator.language || navigator.userLanguage;
if (lang == "en") {
$("body").addClass("en");
}
这将根据用户浏览器语言显示某些容器。
添加此代码的最佳位置是什么?我应该在$(document).ready()
还是$(window).load()
添加?或者也许在身体容器打开后?任何帮助将不胜感激。
答案 0 :(得分:1)
因为你是通过添加一个类来进行操作。如果你正在使用jquery的文件准备好了。对于香草JS。最好将它放在DOMContentLoaded事件上。
答案 1 :(得分:0)
似乎你希望它尽可能地执行。如果您根据语言显示/隐藏容器,我怀疑为您的用户提供良好的用户体验是看到与他们无关的语言。
但是你想要做到这一点很好,但我会将这个JavaScript放在哪里执行得最快(head
标签,也许?)。
只要将HTML应用于DOM,就会应用CSS,因此您的用户将看不到不相关的内容。但是,如果您正在等待onload
等等,
答案 2 :(得分:0)
IMO它取决于将处理语言选择的事件,将类添加到正文的事件应始终在翻译文本的事件之前。
您也可以使用此方法,因为代码具有语义含义
,所以易于维护$(window).bind('setup', function() {
var lang = navigator.language || navigator.userLanguage;
if (lang == "en") {
$("body").addClass("en");
}
});
并准备好文件
$(document).ready(function() {
$(window).trigger('setup');
//functionality to manage translations
});
Here一个工作示例