Как запустить функцию JavaScript после загрузки конкретного JS? - PullRequest
6 голосов
/ 01 декабря 2010

Я сделал функцию js для включения другого javascript в мой html.Мне нужно убедиться, что скрипт, который я загрузил с помощью этой функции, завершил обработку, а затем двигаться только дальше в моем исходном скрипте.вперед.Как мне это сделать?

Ответы [ 3 ]

8 голосов
/ 01 декабря 2010
function loadBackupScript(callback) {
    var script;
    if (typeof callback !== 'function') {
       throw new Error('Not a valid callback');  
    }
    script = document.createElement('script');
    script.onload = callback;  
    script.src = 'http://www.geoplugin.net/javascript.gp';
    document.head.appendChild(script);
}

loadBackupScript(function() { alert('loaded'); });
2 голосов
/ 01 декабря 2010

Добавьте это к вашей функции:

// all cool browsers
script.onload = doSomething;
// IE 6 & 7
script.onreadystatechange = function() {
if (this.readyState == 'complete') {
    doSomething();
}

Если вы не доверяете этим событиям, вы также можете использовать setTimeout () для проверки существования функции. Хорошую статью об этом можно найти здесь:

http://www.ejeliot.com/blog/109

1 голос
/ 01 декабря 2010

Я бы порекомендовал использовать для этого LABJs .

Используя его, вы можете сделать это

$LAB
.script("framework.js")
.wait(function(){
    //called when framework.js is loaded
})
.script("init.js")
.wait(function(){
    //called when init.js is loaded
});

Это кросс-браузер и часто будет более эффективным, чемЖесткое кодирование тегов скрипта в ваш html благодаря тому, что он поддерживает параллельные загрузки.

Подробнее об этом можно прочитать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...