jQuery в Opera userJS - PullRequest
       31

jQuery в Opera userJS

3 голосов
/ 14 января 2012

Я начал изучать UserJS в Opera. Чтобы проверить, я попытался соединить библиотеку jQuery и пользовательский интерфейс jQuery, но это не помогло Вот код:

(function( ) {
    var headID = document.getElementsByTagName("head")[0];         
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
    headID.appendChild(newScript);

    newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery2';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js';
    headID.appendChild(newScript);

    alert('first alert');
    window.addEventListener('load', function (e)  {
        $('body').html('test page');
    }, false);
})( );

Первая тревожная работа. Две библиотеки подключены к странице, но код jQuery не работает. Что не так?

PS. Я получаю сообщение об ошибке: ReferenceError: Неопределенная переменная: $

1 Ответ

2 голосов
/ 14 января 2012

Ваши скрипты загружаются асинхронно и, вероятно, еще не готовы к моменту загрузки страницы, поэтому $ / jQuery еще не существует в области окна.

Поскольку вы используете jQuery, вы можете легко использовать его$ (document) .ready () или просто $ (), так как он также работает при вызове ПОСЛЕ загрузки страницы.

Вот скрипка с простым обработчиком script.onload, который запускает функцию ready () jQuery, как только обаДоступны скрипты: http://jsfiddle.net/qaYJF/

...