动态包含javascript文件的安全方法


Safe way to include javascript file dynamically

我有一个lang文件夹,其中包含网站的语言变量。根据用户单击的按钮,我想包含所需的文件。因此,如果用户选择英语,会话变量将存储 lang = 'en'。然后包含文件 ./lang/en/client_vars.js,以便我可以调用这些变量。如果用户选择中文,则会话中将存储"ch",要包含的文件为 ./lang/ch/client_vars.js。到目前为止,这就是我的想法:

  1. <script type="text/javascript" src="set_language.js"></script>包含在头部部分。
  2. 在set_language.js文件中,我得到这样的会话变量值:

    var language;
    $.ajaxSetup({cache: false})
    $.get('get_session.php', function (data) {
        language = data;
    });
    

    get_session文件是声明和设置语言会话变量的文件。

  3. 第三步是包含所需的js文件。这就是我被困住的地方。在正常情况下,如果只有一个可能的文件,我会在 head 部分中完成它

    <script type="text/javascript" src="./lang/en/client_vars.js"></script>
    

但是由于我需要先使用 ajax 获取该变量,因此我不知道如何处理它。

尝试:

$.get('get_session.php', function (data) {
    language = data;
    $.getScript('./lang/' + language + '/client_vars.js');
});