根据客户端的语言向正文添加一个类

时间:2016-07-03 19:43:07

标签: javascript jquery

我想根据客户端的浏览器语言更改网页的正文类:

var lang = navigator.language || navigator.userLanguage;
if (lang == "en") {
    $("body").addClass("en");
}

这将根据用户浏览器语言显示某些容器。

添加此代码的最佳位置是什么?我应该在$(document).ready()还是$(window).load()添加?或者也许在身体容器打开后?任何帮助将不胜感激。

3 个答案:

答案 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一个工作示例