Механик @require jQuery не рабочий “Компонент, не доступный”

Я видел другой вопрос на здесь о загрузке 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==

10
задан Community 23 May 2017 в 12:31
поделиться

5 ответов

Хорошо, поэтому я посмотрел на это немного более глубоко. Я имел использовал ваш сценарий точно, но использовал нашу версию 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-адреса, и он должен правильно в мире.

6
ответ дан 3 December 2019 в 16:52
поделиться

Атрибут @require не работает правильно в Greasemonkey и jQuery ... Эта же ошибка может возникнуть в Firebug.

Альтернатива - включить jQuery на странице через greasemonkey, создавая тег скрипта. Вот как это сделать .

0
ответ дан 3 December 2019 в 16:52
поделиться

Не совсем правда, кажется, что jQuery 1.4 пытается обнаружить что-то, используя вызов, который просто не работает в среде Greasemonkey. @require обычно работает как следует.

Так что возвращаясь к 1.3.2 делает трюк, но я предпочел бы найти решение, которое позволяет мне использовать 1.4.

Кстати, я использую это, немного по-другому:

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js
0
ответ дан 3 December 2019 в 16:52
поделиться

Я нашел не идеальный способ использовать его с 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;
7
ответ дан 3 December 2019 в 16:52
поделиться

Я спотыкался, пытаясь решить эту проблему с помощью GM 0.8 и jquery 1.4.2, и нашел следующее: http: //forum.jquery .com / topic / importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error

Мне кажется, это окончательный ответ на вопрос и как его обойти. Обходной путь сработал для меня.

6
ответ дан 3 December 2019 в 16:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: