2016-02-04 4 views
0

У меня есть папка lang, которая содержит языковые переменные для веб-сайта. В зависимости от кнопки, нажатой пользователем, я хочу включить нужный файл. Поэтому, если пользователь выбирает английский язык, переменная session хранит lang = 'en'. Затем включите файл ./lang/en/client_vars.js, чтобы я мог вызвать эти переменные. Если пользователь выбирает китайский язык, «ch» хранится в сеансе, а файл для включения - ./lang/ch/client_vars.js. До сих пор это то, что я подумал:Безопасный способ включения файла javascript динамически

  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. Вот где я застрял. В нормальной ситуации, если существует только один возможный файл, я бы сделал это в головной части, как

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

Но так как мне нужно, чтобы получить эту переменную с помощью AJAX-первых, я не знаю, как с этим бороться.

ответ

1

Try:

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

Было бы еще лучше, если начальная '$ .get()' можно было бы сделать, чтобы вернуть фактический сценарий. – Pointy

+0

Я попробую. Однако я был бы признателен за некоторую обеспокоенность по поводу безопасности используемого метода. В других потоках я читал, как иногда некоторые методы приводят к тому, что код подвержен ошибкам ... –

+0

@Pointy Я не знаю об этом, я хотел бы услышать ваше предложение, так как любые улучшения приветствуются. –

Смежные вопросы