[以下是我自己解决问题后的自答答帖子。我猜有些人可能觉得它很有用。]
我尝试在Greasemonkey脚本中使用JQuery的resizable
和draggable
,并且
如何解决这个问题?
答案 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问题: