如何使JQuery可调整大小和与Greasemonkey一起工作?

时间:2011-10-15 23:09:30

标签: jquery jquery-ui greasemonkey jquery-ui-draggable jquery-ui-resizable

[以下是我自己解决问题后的自答答帖子。我猜有些人可能觉得它很有用。]

我尝试在Greasemonkey脚本中使用JQuery的resizabledraggable,并且

  • 我在JS控制台中遇到错误“组件不可用 (NS_ERROR_NOT_AVAILABLE)”,
  • 我在JS控制台中没有错误,但是拖动不起作用。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

原因是某些版本的JQuery及其插件与GreaseMonkey不兼容。

以下是已确认使用Firefox 7.0.1 + GreaseMonkey 0.9.11的代码段 (应该可以使用GM 0.8+的Fx 3.0+)。 它利用了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之后添加以下内容来加载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问题: