Причина, по которой ваше событие onload срабатывает немедленно, заключается в том, что вы вызываете его, а не назначаете его.
scriptJS.onload = loadAssetsNext();
Это просто присваивает возвращаемое значение из вызова loadAssetsNext
свойству onload
объекта scriptJS
. То, что вы собираетесь сделать, это:
scriptJS.onload = loadAssetsNext;
То, что устанавливает обработчик onload
в качестве функции loadAssests
. Это должно решить ваши проблемы.