Я попытался поставить эту строку, но она не работает:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
jQuery вообще не работает в Greasemonkey. Есть ли другой способ использовать jQuery в Greasemonkey?
-
Для всех людей, имеющих такую же проблему, вы должны загрузить файл в greasespot, а затем установить его оттуда.
Опция Создать новый скрипт не будет работать!
jquery
greasemonkey
Кира Найли
источник
источник
$(document).ready(function() {...});
в своем коде@requires
- это добавить хеш или строку запроса в конец@require
оператора и изменять его всякий раз, когда требуется обновление. Похоже на то, как вы «закашиваете» иконку.// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js?v=changeme
Ответы:
Возможно, у вас недостаточно свежая версия Greasemonkey. Была добавлена версия 0.8
@require
.Если у вас нет 0.8, используйте технику, описанную Джоан Пьедрой, для ручного добавления
script
элемента на страницу .Между версии 0.8 и 0.9,
@require
будет обработано только тогда , когда сценарий сначала установлен. Если вы измените список необходимых скриптов, вам нужно удалить скрипт и переустановить его; Greasemonkey загружает необходимый скрипт один раз при установке и затем использует кэшированную копию.Начиная с 0.9, поведение Greasemonkey изменилось (для решения проблемы, связанной с тангенциальной связью ), так что теперь оно загружает необходимые скрипты после каждого редактирования; переустановка скрипта больше не нужна.
источник
@require
директивы, вам нужно будет удалить и переустановить скрипт, чтобы он вступил в силу.Если вы хотите использовать jQuery на сайте, где он уже включен, то это путь (вдохновленный BrunoLM):
Я знаю, что это не было первоначальной целью вопроса, но это становится все более распространенным случаем, и вы явно не исключали этот случай. ;)
источник
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }
в Chrome сайты Jquery уже будут доступны.alert($('.submit_entry').length);
и ошибка, и отправка соответствующего оповещения одновременно.Нет ничего плохого в том, чтобы включить весь jQuery в ваш скрипт Greasemonkey. Просто возьмите исходный код и поместите его вверху вашего пользовательского скрипта. Не нужно создавать тег сценария, так как вы уже выполняете JavaScript!
В любом случае, пользователь загружает скрипт только один раз, поэтому размер скрипта не имеет большого значения. Кроме того, если вы когда-нибудь захотите, чтобы ваш скрипт Greasemonkey работал в не-GM средах (таких как пользовательские скрипты GM-esque от Opera или Greasekit в Safari), это поможет не использовать уникальные конструкции GM, такие как @require.
источник
Решение Роба правильное - используйте
@require
библиотеку jQuery и обязательно переустановите скрипт, чтобы директива была обработана.Я думаю, что стоит добавить, что вы можете нормально использовать jQuery, как только вы включите его в свой скрипт, за исключением методов AJAX . По умолчанию jQuery ищет XMLHttpRequest, которого нет в контексте Greasemonkey. Я написал об обходном пути, где вы создаете оболочку для GM_xmlhttpRequest (версия XHR Greasemonkey) и используете jQuery
ajaxSetup()
для указания вашей обернутой версии в качестве значения по умолчанию. Как только вы это сделаете, вы можете использовать$.get
и$.post
как обычно.У вас также могут быть проблемы с jQuery,
$.getJSON
потому что он загружает JSONP с помощью<script>
тегов. Это приводит к ошибкам, поскольку jQuery определяет функцию обратного вызова в области действия окна Greasemonkey, а загруженные сценарии ищут функцию обратного вызова в области действия основного окна. Лучше всего использовать$.get
вместо этого и анализировать результат сJSON.parse()
.источник
Вы можете создать новый скрипт с помощью New User Script в Greasemonkey, но вам нужно отредактировать файл config.xml в папке gm_scripts.
Ваш файл config.xml должен иметь такой же синтаксис, как этот:
Обратите внимание на
<Require>
тег.В вашем скрипте вы можете использовать прямой синтаксис jQuery. Убедитесь, что в заголовке Greasemonkey есть тег require. Вот пример Hello World:
Помните, что после изменения config.xml вы должны перезапустить браузер для Greasemonkey, чтобы перезагрузить настройки снова.
Также обратите внимание, что вам нужно скопировать файл jquery.js в папку вашего скрипта, чтобы это работало. Я проверил это, и это работает, только если вы скопируете туда файл вручную.
Счастливого JQuerying!
источник
Обновление : как говорится в комментарии ниже, этот ответ устарел.
Как и все остальные, @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, пока все не изменится.
источник
Если вы используете Chrome, вы должны выбрать альтернативу, поскольку Chromium не поддерживает
@require
.Источник: Проект Chromium - Пользовательские скрипты
Подробнее и альтернативы о том, как я могу использовать jQuery в скриптах Greasemonkey в Google Chrome?
источник
мета @require не работает, если вы хотите отменить привязку событий на веб-странице с помощью jQuery, вам нужно использовать библиотеку jQuery, включенную в веб-страницу, а затем получить ее в Greasemonkey с помощью команды
var $ = unsafeWindow.jQuery;
Как отсоединить обработчики событий jquery в greasemonkey?источник
Вы можете получить
Component unavailable
если импортируете скрипт jQuery напрямую.Может быть, это то, о чем @Conley говорил ...
Ты можешь использовать
которая является модифицированной версией для работы с Greasemonkey, а затем получить объект jQuery
источник
@require
это НЕ обрабатывается только когда сценарий первый установлен! По моим наблюдениям это обрабатывается с первого раза исполнения! Таким образом, вы можете установить скрипт с помощью команды Greasemonkey для создания совершенно нового скрипта. Единственное, о чем вам нужно позаботиться, это то, что не происходит перезагрузки страницы, пока вы не добавили@require
деталь. (и сохранить новый скрипт ...)источник