2

[以下は、自分で問題を解決した後の自己回答投稿です。便利だと思う人もいると思います。】

私は JQuery のresizableand draggablein Greasemonkey スクリプトを使用しようとしましたが、

  • JS コンソールに「コンポーネントが利用できません (NS_ERROR_NOT_AVAILABLE)」というエラーが表示されます。
  • また:
  • JS コンソールでエラーは発生しませんが、ドラッグ可能は機能しません。

これを解決するには?

4

1 に答える 1

2

その理由は、JQuery とそのプラグインの一部のバージョンが GreaseMonkey と互換性がないためです。

以下は、Firefox 7.0.1 + GreaseMonkey 0.9.11 で動作することが確認されているコード スニペットです (おそらく Fx 3.0+ と GM 0.8+ で動作するはずです)。GreaseMonkey の 0.8+@require@resourceコマンドを利用します。@requireとのファイルは@resource 、ユーザー スクリプトのインストール時に (1 回) ダウンロードされ、ディスク上のユーザー スクリプトと同じフォルダーに保存されます。依存関係のセットがコードで遊んでいるユーザーなどによって変更されると、すべての依存関係が再ダウンロードされます。

// @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 の後に次を追加して@requireJQuery 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 の質問:

于 2011-10-15T23:12:03.297 に答える