Как уже упоминалось в моем комментарии выше, вы не можете делать то, что хотите, поскольку сам JavaScript не имеет механизма для включения других файлов JavaScript. Файлы JavaScript включены в документ, используя элемент HTML-скрипта.
Однако мы могли бы написать один скрипт («active.js»), который мы включаем в документ, и это вручную создает дополнительный скриптовый элемент для каждого внешнего файла JavaScript. Следует, однако, отметить, что это может ухудшить производительность, поскольку мы создаем дополнительные HTTP-запросы.
Я думаю, вам также понадобится отделить ваш текущий встроенный скрипт во внешний файл, чтобы избежать сценария «курица против яйца», где вы ссылаетесь на элементы «tyr1.js» перед его загрузкой.
Так что ваш «active.js» сценарий становится чем-то вроде:
/**
* Combined JavaScript files (active.js)
* - Creates script elements for any additional JS files
*/
(function() {
var head = document.getElementsByTagName('head')[0];
// Scripts to include
var js = [
'http://domain.com/tyr1.js',
'/inline.js' /* Change path to where this is located */
];
// Clone for every external script that needs to be included
var jsElem = document.createElement('script');
jsElem.type = 'text/javascript';
// Step through scripts to include
for (var i=0; i<js.length; i++) {
var newJsElem = jsElem.cloneNode(false);
newJsElem.src = js[i];
// Append to HEAD section
head.appendChild(newJsElem);
}
})()
Это, конечно, предполагает сценарии должны быть помещены в головной части документа.
Короче говоря, без ручного комбинирования кода, поскольку @Andrew предлагает, вы не можете делать то, что хотите, поскольку сам JavaScript не имеет механизма для включения других файлов JavaScript. Это нужно сделать в HTML с элементом 'script'. Сказав это, ваш activ.js может потенциально создать элементы 'script' в DOM, запросив соответствующие файлы. – MrWhite
Спасибо, Джош, не могли бы вы рассказать мне, как? – user1289292