Как заставить JQuery изменять размер и перетаскивать работу с Greasemonkey? - PullRequest
2 голосов
/ 16 октября 2011

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

Я пытаюсь использовать JQuery resizable и draggable в скрипте Greasemonkey и

  • Я получаю сообщение об ошибке в консоли JS "Компонент недоступен (NS_ERROR_NOT_AVAILABLE)»,
  • ИЛИ:
  • Я не получаю ошибок в консоли JS, но перетаскивание не работает.

Как это решить?

1 Ответ

2 голосов
/ 16 октября 2011

Причина в том, что некоторые версии JQuery и его плагинов несовместимы с GreaseMonkey.

Ниже приведен фрагмент кода, который подтвержден для работы с Firefox 7.0.1 + GreaseMonkey 0.9.11 (долженвероятно, работать в Fx 3.0+ с GM 0.8+).Он использует команды GreaseMonkey 0.8+ @require и @resource.Файлы в @require и @resource загружаются (один раз) при установке пользовательского сценария и сохраняются на диске в той же папке, что и пользовательский сценарий.Когда набор зависимостей изменяется, например, пользователем, играющим с кодом, все зависимости повторно загружаются.

// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js
// @require       http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.2/jquery-ui.min.js

$('#someid').draggable().resizable();

Вы можете добавить следующее после @require s, чтобы загрузить JQuery UI CSS, но этонеобязательно:

// @resource  jqueryUICSS https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css

// load JQuery UI CSS
var jqueryUICSS = GM_getResourceText("jqueryUICSS");
GM_addStyle(jqueryUICSS);

Некоторая информация о совместимости:

// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js //DRAGGABLE FAILS
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js //INCOMPATIBLE
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js //OK
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js //DRAGGABLE FAILS

// @require       http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.2/jquery-ui.min.js //OK
// @require       http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js //seems okay, but http://wiki.greasespot.net/Third-Party_Libraries says some other stuff is incompatible

// @resource  jqueryUICSS https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css //OK
// @resource  jqueryUICSS https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css //OK

Литература:

Вопросы по StackOverflow:

...