Почему это достигает main (), а jQuery все еще не определен? - PullRequest
0 голосов
/ 20 января 2012

Я пытаюсь изменить различные загрузчики, чтобы можно было обработать несколько сценариев перед вызовом основной функции.Это должно загрузить jQuery, затем jQueryUI и затем вызвать main (), чтобы фактически запустить скрипт пользователя.Тем не менее, он проходит через цикл, но когда он попадает в main (), я получаю консольную ошибку от Chrome о неопределенности jQuery.

!function loader (i) {
        var requires = [ 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'
                       , 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js'
                       ];
        var loadScript = function (i) {
                    var script    = document.createElement('script');
                    script.type   = 'text/javascript';
                    script.src    = requires[i];
                    script.onload = (++i === requires.length) ? function () { loader(i); }
                                                              : function () { main(); }
                    document.head.appendChild(script);
            };

        loadScript(i || 0);
}();

function main () {
    console.log(jQuery.version);
    console.log(jQuery.ui.version);
}

Ответы [ 2 ]

0 голосов
/ 22 января 2012

Вот последний сценарий, который я придумал, если кто-то ищет такие вещи.http://userscripts.org/scripts/review/123588

Пилат поймал часть его вместе с троичным.У Нейта Б тоже есть часть: jQuery использует jQuery.fn.jquery (но пользовательский интерфейс несовместим и использует jQuery.ui.version).

Было бы неплохо выяснить, как пропустить оболочкунемного посередине, для третьей стороны, но это работает.:)

0 голосов
/ 20 января 2012

Я не думаю, что jQuery.version является допустимым свойством, и оно возвращает undefined. Попробуйте вместо этого $.fn.jquery и посмотрите, что получится.

...