Знать, когда JS-файл загружен (а) и (б) выполнено, сложно, поскольку он поддерживается не всеми браузерами.
Я полагаю, вы думаете что-то вроде:
var s = document.createElement("script"),
f = document.getElementsByTagName('body')[0];
s.type = 'text/javascript';
s.src = "https://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dojo/dojo.xd.js";
s.addEventListener("load", function() {
console.log("script loaded");
});
f.appendChild(s);
Как я уже говорил выше, это не будет работать для всех браузеров. И даже если это произойдет, это не будет очень полезно для вас, если вы на самом деле пытаетесь выполнить некоторый код, основанный на JS, который загружается динамически.
Единственный надежный способ выполнения чего-либо при загрузке зависимости - это обернуть эту зависимость в функцию. Таким образом, когда браузер анализирует этот JS, он выполнит эту функцию, которая даст вам знать, что вы можете начать использовать все, что хотите, чтобы внести. Именно поэтому JSONP работает так, как работает.
Если это то, что вы хотите сделать, посмотрите на RequireJS .