【以下为自行解决问题后的自答贴。我想有些人可能会觉得它很有用。]
我尝试在 Greasemonkey 脚本中使用 JQueryresizable
和draggable
- 我在 JS 控制台中收到错误“组件不可用(NS_ERROR_NOT_AVAILABLE)”,
- 或者:
- 我在 JS 控制台中没有错误,但可拖动不起作用。
如何解决这个问题?
【以下为自行解决问题后的自答贴。我想有些人可能会觉得它很有用。]
我尝试在 Greasemonkey 脚本中使用 JQueryresizable
和draggable
如何解决这个问题?
原因是某些版本的 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();
您可以在 s 之后添加以下内容@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 问题: