Как я могу использовать jQuery в Greasemonkey?
Я попытался поставить эту строку, но она не работает:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
jQuery вообще не работает в Greasemonkey. Есть ли другой способ использования jQuery в Greasemonkey?
–
- массив массивов jquery
- Как получить размер фонового изображения в jQuery?
- Asp.Net UpdatePanel в Gridview JQuery DatePicker
- JQuery Draggable AND Resizeable
- Разница между CSS-селектором и фильтром jQuery?
Для всех людей, которые имеют такую же проблему, вы должны загрузить файл в greasespot, а затем установить его оттуда.
Опция Create New Script не работает!
- Как я могу использовать проверку jQuery с помощью «выбранного» плагина?
- Автовоспроизведение видео HTML5 в мобильном браузере
- Событие click () вызывает два раза в jquery
- Добавление / удаление элементов из объекта JavaScript с помощью jQuery
- Как выбрать html-узлы по ID с помощью jquery, когда идентификатор содержит точку?
- jquery проверить, если он нажат или нет
- Android 4.3 и PhoneGap, ссылка can not tap
- Передача параметров на идентификатор страницы в jQuery Mobile
Возможно, у вас нет последней версии 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
. (и сохранить новый скрипт …)