Как я могу использовать jQuery в Greasemonkey?

Я попытался поставить эту строку, но она не работает:

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js 

jQuery вообще не работает в Greasemonkey. Есть ли другой способ использования jQuery в Greasemonkey?

Для всех людей, которые имеют такую ​​же проблему, вы должны загрузить файл в greasespot, а затем установить его оттуда.

Опция Create New Script не работает!

Возможно, у вас нет последней версии Greasemonkey. Это была версия 0.8, которая добавила @require .

 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js 

Если у вас нет 0,8, воспользуйтесь методикой, которую описывает Joan Piedra для ручного добавления на страницу элемента script .

Между версиями 0.8 и 0.9 @require обрабатывается только при первом @require скрипта. Если вы измените список необходимых скриптов, вам нужно удалить свой скрипт и переустановить его; Greasemonkey загружает требуемый скрипт один раз при установке и затем использует кешированную копию.

Начиная с 0.9, поведение Greasemonkey изменилось (для решения связанной с тангенсом проблемы ), чтобы теперь загружать необходимые скрипты после каждого редактирования; переустановка скрипта больше не требуется.

Если вы хотите использовать jQuery на сайте, на котором он уже включен, это путь (вдохновленный BrunoLM):

 var $ = unsafeWindow.jQuery; 

Я знаю, что это не было изначальным намерением вопроса, но оно все чаще становится обычным делом, и вы явно не исключали этот случай. 😉

Абсолютно ничего плохого в том, что весь jQuery в вашем скрипте Greasemonkey содержится в jQuery. Просто возьмите источник и поместите его в верхней части своего пользовательского скрипта. Не нужно создавать тег скрипта, поскольку вы уже выполняете JavaScript!

Пользователь загружает сценарий только в любом случае, поэтому размер скрипта не вызывает большого беспокойства. Кроме того, если вы когда-нибудь захотите, чтобы ваш скрипт Greasemonkey работал в не-GM-средах (например, пользовательские скрипты Opera с GM-esque или Greasekit на Safari), это поможет не использовать GM-уникальные конструкции, такие как @require.

Решение Rob является правильным: используйте @require с библиотекой jQuery и обязательно переустановите свой скрипт, чтобы директива обрабатывалась.

Я думаю, стоит добавить, что вы можете использовать jQuery нормально, как только вы включили его в свой скрипт, за исключением методов AJAX . По умолчанию jQuery ищет XMLHttpRequest, которого нет в контексте Greasemonkey. Я написал об обходном пути, где вы создаете оболочку для GM_xmlhttpRequest (версия XHR для Greasemonkey) и используйте ajaxSetup() jQuery, чтобы указать свою завернутую версию как значение по умолчанию. Как только вы это сделаете, вы можете использовать $.get и $.post как обычно.

У вас могут также возникнуть проблемы с jQuery $.getJSON поскольку он загружает JSONP, используя tags . Это приводит к ошибкам, поскольку jQuery определяет функцию обратного вызова в области windows Greasemonkey, а загруженные сценарии ищут обратный вызов в области основного windows. Лучше всего использовать $.get вместо этого и проанализировать результат с помощью JSON.parse() .

Обновление : как сказано ниже, этот ответ устарел.

Как и все остальные, @require запускается только после установки скрипта. Однако вы должны также отметить, что в настоящее время jQuery 1.4. * Не работает с greasemonkey. Вы можете увидеть здесь подробности: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error

Вам нужно будет использовать jQuery 1.3.2, пока все не изменится.

Если вы используете хром, вам нужно выбрать альтернативу, поскольку Chromium не поддерживает @require .

Источник: проект Chromium – пользовательские скрипты

Дополнительные сведения и альтернативы о том, как я могу использовать jQuery в сценариях Greasemonkey в Google Chrome?

Вы можете создать новый скрипт, используя новый скрипт пользователя в Greasemonkey, но вы должны отредактировать файл config.xml внутри папки gm_scripts.

Ваш файл config.xml должен иметь аналогичный синтаксис:

  

Обратите внимание на .

В вашем скрипте вы можете использовать прямой синтаксис jQuery. Убедитесь, что у вас есть тег require в заголовке Greasemonkey. Вот пример Hello World:

 // ==UserScript== // @name Test jQuery // @namespace http://www.example.com/jQueryPlay/ // @description Just a test // @include http://* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js // ==/UserScript== $(document).ready(function() { alert("Hello world!"); }); 

Помните, что после изменения файла config.xml вам нужно перезапустить браузер для Greasemonkey, чтобы снова загрузить настройки.

Также обратите внимание, что вам нужно скопировать файл jquery.js в папку каталога скриптов, чтобы это работало. Я тестировал это, и он работает только в том случае, если вы на самом деле копируете файл вручную.

Счастливый jQuerying!

@require meta не работает, если вы хотите отменить события на веб-странице с помощью jQuery, вам нужно использовать библиотеку jQuery, включенную в веб-страницу, а затем получить ее в Greasemonkey с помощью var $ = unsafeWindow.jQuery; Как отключить обработчики событий jquery в greasemonkey?

Вы можете получить Component unavailable если вы напрямую импортируете скрипт jQuery.

Возможно, это то, о чем @Conley говорил …

Вы можете использовать

 @require http://userscripts.org/scripts/source/85365.user.js 

который является модифицированной версией для работы с Greasemonkey, а затем получить объект jQuery

 var $ = unsafeWindow.jQuery; $("div").css("display", "none"); 

@require НЕ обрабатывается только при первом @require скрипта! По моим наблюдениям это происходит в первый раз! Таким образом, вы можете установить скрипт с помощью команды Greasemonkey для создания совершенно нового скрипта. Единственное, что вам нужно позаботиться, это то, что перезагрузка страницы не запускается, если вы добавите часть @require . (и сохранить новый скрипт …)

  • Отправка multipart / formdata с помощью jQuery.ajax
  • Проблема отправки JSON-данных из JQuery в метод REST WCF
  • Как прокручивать страницу вверх или вниз на якорь с помощью jQuery?
  • Отображение случайных div с использованием JQuery
  • Что делает AngularJS лучше, чем jQuery?
  • Окно jQuery UI Dialog, загруженное в AJAX-стиль jQuery UI Tabs
  • В чем разница между jQuery's replaceWith () и html ()?
  • События, не зарегистрированные после заменыWith
  • Изменение флажка jQuery и событие click
  • Загрузка jQuery в chrome-extension
  • текущее время / продолжительность видео html5?
  • Interesting Posts

    Capybara с субдоменами – default_host

    Как изменить MAC-адрес в Win 8, чтобы обмануть Roku Player через страницу всплеска WiFi?

    Есть ли бесплатная (как в деньгах) версия Redhat linux?

    java regex шаблон закрытого символьного classа

    Исключить недопустимые символы XML в C #

    Как вставить строку между двумя строками в существующем excel с HSSF (Apache POI)

    Как включить PAE в Windows 7 (32-разрядная версия) для поддержки более 3,5 ГБ оперативной памяти?

    Как захватить событие отправки, используя jQuery в приложении ASP.NET?

    Работает ли x4 PCIe механически в слоте x16 в режиме x4?

    Готово ли java final помочь компилятору создать более эффективный байт-код?

    Отправить текст через Bluetooth от Java Server до Android Client

    Положите прогрессBar на ActionBar

    Как настроить ответный заголовок в JAX-RS, чтобы пользователь увидел всплывающее окно для Excel?

    Есть ли firefox-подобный плагин-контейнер для хром?

    Извлечение названных групп регулярного выражения в LibreOffice Calc

    Давайте будем гением компьютера.