【问题标题】:Safe way to include javascript file dynamically动态包含javascript文件的安全方法
【发布时间】:2016-02-04 15:17:09
【问题描述】:

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

  1. <script type="text/javascript" src="set_language.js"></script> 包含在 head 部分中。
  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获取那个变量,所以我不知道如何处理。

【问题讨论】:

    标签: javascript php jquery ajax session


    【解决方案1】:

    试试:

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

    【讨论】:

    • 如果能把初始的$.get() 做成返回实际的脚本就更好了。
    • 我会试试的。但是,我希望对所用方法的安全性有所担忧。在其他线程中,我正在阅读某些方法有时如何导致代码容易出现错误...
    • @Pointy 我不知道,我想听听你的建议,因为欢迎任何改进。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2016-12-16
    • 2012-11-30
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多