Занесите все последующие действия в функцию. После кода динамического подключения скрипта поставьте вызов этой функции с короткой задержкой (скажем, 30 мс). Внутри функции проверяйте: если нужные данные из динамически подключаемого скрипта еще не доступны, то сгенерировать новый рекурсивный вызов этой функции с задержкой, а если данные доступны, то выполнить ожидающие операторы. Выглядеть это может примерно так:
| Код | function waitForScript() { if (abcd) { alert(abcd); // еще какие-то действия с abcd } else { window.setTimeout(waitForScript, 30); } }
var sc = document.createElement("script"); sc.type = 'text/javascript'; sc.src = 'file.js'; document.getElementsByTagName('head')[0].appendChild(sc);
window.setTimeout(waitForScript, 30);
|
Вместо abcd можно (лучше) использовать какой-нибудь специальный флажок, который инициализируется ненулевым значением в самом конце динамически подключаемого сценария. |