2

[以下是我自己解決問題後的自我回復帖子。我猜有些人可能會發現它很有用。]如何使JQuery可調整大小和可拖動的工作與Greasemonkey?

我嘗試使用jQuery的resizable和的Greasemonkey腳本draggable,並

  • 我得到錯誤的JS控制檯「組件不可用 (NS_ERROR_NOT_AVAILABLE)」,
  • OR:
  • 我在JS控制檯沒有錯誤,但可拖動不起作用。

如何解決這個問題?

回答

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的問題:

相關問題