Я видел другой вопрос на здесь о загрузке jQuery в Механике. Пробование тот метод, с этим требует оператора в моем ==UserScript==
теги:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
Я все еще получаю следующее сообщение об ошибке в ошибочной консоли Firefox:
Error: Component is not available
Source File: file:///Users/greg/Library/Application%20Support/
Firefox/Profiles/xo9xhovo.default/gm_scripts/myscript/jquerymin.js
Line: 36
Это мешает моему коду механика работать. Я удостоверился, что включал @require
для jQuery и сохранил мой js файл прежде, чем установить его, как требуется файлы только загружаются на установке.
Код:
// ==UserScript==
// @name My Script
// @namespace http://www.google.com
// @description My test script
// @include http://www.google.com
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// ==/UserScript==
GM_log("Hello");
У меня есть Механик 0.8.20091209.4 установленных на Firefox 3.5.7 на моем MacBook Pro, Leopard (10.5.8). Я очистил свой кэш (кроме cookie) и отключил все другие плагины кроме Flashblock 1.5.11.2, Веб-разработчик 1.1.8 и Adblock Плюс 1.1.3.
Мой config.xml
с моим установленным сценарием Механика:
Я вижу, что jquerymin.js находился в gm_scripts/myscript/
каталог.
Кроме того, действительно ли это характерно для этой ошибки произойти в консоли при установке сценария Механика?
Error: not well-formed
Source File: file:///Users/Greg/Documents/myscript.user.js
Line: 1, Column: 1
Source Code:
// ==UserScript==
Хорошо, поэтому я посмотрел на это немного более глубоко. Я имел использовал ваш сценарий точно, но использовал нашу версию jQuery, заставляя ее выглядеть так:
// ==UserScript==
// @name My Script
// @namespace http://www.google.com
// @description My test script
// @include http://www.google.se/*
// @include http://www.dn.se/*
// @require http://myserver/jquery-1.3.2.js
// ==/UserScript==
GM_log("Hello");
Это работает просто для меня, мое предположение, jQuery up на API Google не хватает некоторых функций. Потому что этот код выше, работает просто хорошо. Также обратите внимание на / *
в конце каждого URL, пожалуйста, включите это.
Попробуйте другую jQuery и изменить URL-адреса, и он должен правильно в мире.
Атрибут @require не работает правильно в Greasemonkey и jQuery ... Эта же ошибка может возникнуть в Firebug.
Альтернатива - включить jQuery на странице через greasemonkey, создавая тег скрипта. Вот как это сделать .
Не совсем правда, кажется, что jQuery 1.4 пытается обнаружить что-то, используя вызов, который просто не работает в среде Greasemonkey. @require обычно работает как следует.
Так что возвращаясь к 1.3.2 делает трюк, но я предпочел бы найти решение, которое позволяет мне использовать 1.4.
Кстати, я использую это, немного по-другому:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js
Я нашел не идеальный способ использовать его с jQuery 1.4.1 - это, кажется, это исправлено. Это новый браузер нюхает , который, кажется, «сломает» это.
jQuery-1.4.1.min.js:
[old] 36: var o=r.createElement("div");n="on"+n;var m=n in o;
[new] 36: var o=r.createElement("div");n="on"+n;var m=true;
jQuery-1.4.1.js
[old] 934: var isSupported = (eventName in el);
[new] 934: var isSupported = true;
Я спотыкался, пытаясь решить эту проблему с помощью GM 0.8 и jquery 1.4.2, и нашел следующее: http: //forum.jquery .com / topic / importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error
Мне кажется, это окончательный ответ на вопрос и как его обойти. Обходной путь сработал для меня.