greasemonkey и jquery не работают

Я использую jQuery с GM 1.5 и обнаружил, что не могу использовать.get

Мне требуется http://code.jquery.com/jquery.js

и мой код только это

this.$ = this.jQuery = jQuery.noConflict(true);

$(document).ready(function () {
    $.get('index.php',function () {
        console.log('yay');
        console.log($(this).html());

    });
});

Я уверен, что смог сделать это в предыдущих версиях, это как-то связано с изменениями в песочнице, которые были сделаны?

1 ответ

Решение

Код в вопросе работает нормально. Проверено с Greasemonkey 1.5 и Firefox 16 и 17 на Windows XP и Windows 7.

Re:

Ага, теперь мне говорят, что GM_setValue не существует. Я не думал, что это был выбор между функциями GM_ и функциональностью jQuery.


  1. Вам не нужно выбирать. Не вводите использование jQuery (или большинства других библиотек) @require, Затем с надлежащим @grant директивы, вы можете использовать GM_ функционирует легко.

  2. Там нет смысла в коде, как this.$ = this.jQuery = jQuery.noConflict(true); если вы не используете @grant none - что бы отключить GM_ функции.

  3. $(document).ready() не требуется в скрипте Greasemonkey, если вы не используете @run-at document-start,


Итак, используйте такой код:

// ==UserScript==
// @name     YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant    GM_getValue
// @grant    GM_setValue
// @grant    etc., etc.
// ==/UserScript==

$.get ('index.php', function () {
    console.log ('yay');
    console.log ($(this).html () );
} );
Другие вопросы по тегам