Как известно, на сегодняшний день в javascript нету функции или директивы для подключения других js-скриптов, как к примеру include, request или use, которые есть в PHP, C++, Pascal и многих других языках. Неужели никак невозможно решить эту проблему?
Возможно!
Это делается средствами DOM-структуры HTML-документа.
Идея такая: мы каким-то образом в реальном времени создаем элемент <script /> и назначаем ему атрибут src со значением, которое представляет собой путь к подключаемому скрипту.
Проще всего это сделать с помощью document.write:
Пример:
// По умолчанию английский файл
var mySrc = "en_contants.js";
// Если в строке "userAgent" браузера
// нашлась метка о том, что он русский,
// то целесообразно подключить русский файл
if(navigator.userAgent.indexOf("ru;") > -1) {
mySrc = "ru_contants.js";
}
// Подключение
document.write(unescape("%3Cscript src='/js/"+mySrc+" type='text/javascript'%3E%3C/script%3E"));
Этот метод сработает только при старте страницы, то-есть когда выполнится document.write. Но этим методом не получиться подключить скрипт, к примеру, по нажатию кнопки.
В этом случае нам нужно создать DOM-элемент. Конечно можно сделать всё это на чистом яваскрипте и данный фрагмент кода может растянутся на 10-15 строк, главное знать принцип.
Я же использую для этих целей jQuery, чего и Вам советую.
Она содержит простой и замечательный метод:
$.getScript(url, callback);
url — путь к подгружаемому скрпипту;
callback (необязательный параметр) — функция, которая выполнится по завершению загрузки/подключения скрипта.
Внимание: Разработчики библиотеки предупреждают, что в Safari версии 2 и ниже могут возникнуть проблемы с выполнением callback-функции связанные с синхронностью операций. Вы должны убедится, что подключенные функции вызываются позже.