Загрузка ссылки Javascript через JavaScript и немедленный вызов из консоли - PullRequest
0 голосов
/ 15 декабря 2011

У меня есть следующий код для загрузки jQuery в документ с определенного веб-сайта

j=document.createElement("SCRIPT");
j.src="http://code.jquery.com/jquery-latest.pack.js";
document.getElementsByTagName("HEAD")[0].appendChild(j);
var J = jQuery.noConflict();

Если я запускаю это как блок из консоли, я получаю

ReferenceError: jQuery не определен

Однако, если я введу каждую строку вручную, последняя строка будет работать нормально, и я не получу исключения.

Есть что-то, чего мне не хватает - может быть, DOM требуется еще несколько миллисекунд для завершения обработки предыдущей команды?

Какова бы ни была проблема, кто-нибудь знает, как разрешить эту ситуацию?

Это происходит в chrome и firefox с инструментами разработчика и firebug соответственно.

Ответы [ 2 ]

4 голосов
/ 15 декабря 2011
j=document.createElement("SCRIPT");

j.onload = function(){
    window.J = jQuery.noConflict();
};

j.src="http://code.jquery.com/jquery-latest.pack.js";
document.body.appendChild(j);
0 голосов
/ 15 декабря 2011

Попробуйте заменить последнюю строку следующим образом:

function checkJQuery() {
    if (typeof(jQuery) == 'undefined') {
        setTimeout('checkJQuery', 50);
    }
    else {
        J = jQuery.noConflict();
        J(function() {
            // Document ready stuff here
        });
    }
}

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