Во-первых, я настоятельно рекомендую не использовать document.write
.Это грязно и не нужно.
Добавление тега сценария гораздо лучше обрабатывается следующим образом:
var addScriptWithOnLoad = function(src, fn) {
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', src);
s.onload = fn;
document.head.appendChild(s);
};
Далее вам не следует использовать глобальную область видимости, так как вы полагаетесьбраузер играет хорошо, что никогда не является безопасной ставкой.Вы должны скорее передавать данные между функциями.Это, однако, немного выходит за рамки этого ответа.
следующий тег сценария, помещенный в заголовок веб-страницы , дает ожидаемый результат
<script type="text/javascript">
window.i = 0;
var addJS = function(src, fn) {
var s = document.createElement('script');
s.setAttribute('src', src);
s.setAttribute('type', 'text/javascript');
s.onload = fn;
document.head.appendChild(s);
};
console.log(i + " //should be 0");
var fn1 = function() {
console.log();
addJS('a2.js', fn2);
};
var fn2 = function() {
console.log(i + " //should be 2");
};
addJS('a1.js', fn1);
</script>