1

既存のアドオンを拡張するアドオンを作成したいと考えています (オプション ダイアログの追加など)。元のアドオンのコードを直接変更したくありません。私が望む元のアドオンは、XUL を使用して作成されています。これは、アドオンも XUL を使用して作成する必要があるということですか? または、新しいアドオン SDK を使用できますか?

ありがとう!

4

1 に答える 1

5

はい、他のアドオンを拡張することは可能です。実際には、Adblock Plus を拡張する Element Hiding Helper や多くの Firebug アドオンなど、他のアドオンを拡張または相互作用するアドオンがかなりの数あります。

その方法は、拡張しようとしている実際のアドオンの実装によって異なります。したがって、私はいくつかの一般的な指針/メモしか提供できません。

  • XUL ウィンドウ/オーバーレイをアドオンするための XUL オーバーレイを持つことができbrowser.xulます。
  • もちろん、DOM API を使用してサードパーティの XUL DOM を操作することもできます。
  • Javascript のグローバル関数とオブジェクトにモンキー パッチを適用したり、ほとんどの XPCOM コンポーネントを置き換えたりラップしたりできます。
  • アドオン SDK はオーバーレイを使用できません。したがって、window/utilsまたは同様の手段を使用して XUL ウィンドウにアクセスし、そこから DOM API を使用する必要があります。
  • 本当に必要な場合は、Javascript コード モジュールのコードにモンキー パッチを適用する特定の方法があります...
  • 私が覚えている限りでは、SDK モジュールやコンテンツ スクリプトのモンキー パッチは非常に難しく、非常に壊れやすいものです。
  • アドオンの作成者にヘルプ、フィードバック、または単に注意を喚起するために ping を実行することは常に良いことです。多くの場合、作成者は、アドオンを簡単に拡張できるようにするために、独自の拡張 API を公開することさえいとわない場合があります。たとえば、私は過去にそのような API を作成し、他の作成者に API を作成してもらいました。
于 2013-09-11T17:50:31.877 に答える