Я пытаюсь динамически загружать внешний .js файл (в зависимости от ввода, который я получаю от пользователя). В настоящее время мой код выглядит следующим образом:
function createScript(src, id) {
if (document.getElementById(id) == null) {
var newScript = document.createElement('script');
newScript.setAttribute("type", "text/javascript");
newScript.setAttribute("src", src);
newScript.setAttribute("id", id);
document.getElementsByTagName("head")[0].appendChild(newScript);
}
}
Эта работа. Он загружает script, но если я попытаюсь вызвать функцию, определенную внутри нового script, это не сработает. Странно, если я жду второй (с помощью alert("test")
или что-то в этом роде) script работает.
Я предполагаю, потому что браузер сразу добавляет тег <script>
, но он немного дольше "читает" script внутри .js файла.
Я попытался сыграть с "typeof testfunction === 'function'"
с несколькими вариантами, но не повезло.
Любой хороший способ сделать это?