Как получить доступ к внешним скриптам, загруженным JavaScript, через элемент script - PullRequest
0 голосов
/ 28 августа 2018

Я хочу создать свой собственный загрузчик активов. Для загрузки внешних скриптов я использовал следующий javascript

function loadScript(src, callback) {
  var script = document.createElement("script");
  script.onload = function() {
    document.head.appendChild(script);
    callback();
  };
  script.src = src;
}

Но я думаю, что это не самое элегантное решение. Этот фрагмент кода сделает мой HTML-код некрасивым, поскольку он добавляет код в заголовок - для всех моих зависимостей.

Итак, мой вопрос: возможно ли получить доступ к моему внешнему загруженному коду без использования следующей строки

document.head.appendChild(script);

Могу ли я выполнить свой скрипт с чистым js, как

script.execute();

Или, что еще лучше, есть ли способ доступа к данным, хранящимся в моем внешнем файле js? Например, переменная "bar"?

var foo = script.get("bar")

Могу ли я даже выполнить функцию внешнего файла?

script.function(params)

Было бы здорово услышать о ваших идеях и опыте!
Дарт Мун

Редактировать: я забыл исключить AJAX. Я знаю, что могу загрузить код через ajax и выполнить его через eval (), но это не будет хорошей идеей, если вы тестируете локальный код, так как вам нужен сервер (например, Apache XAMPP) для отправки запроса ajax в ваш локальный файлы.

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете попробовать что-то вроде того, как показано ниже.

Внутренний скрипт:

function appendScript(src) {
    var script = document.createElement(‘script’);
    script.src = src;
    document.head.appendChild(script);
}

Внешний скрипт:

function loadedScript() {
   // run something
}

loadedScript()

Внешний код запустит загруженный скрипт () после загрузки файла.

...