4

Firefox アドオン。既存のアドオンを再起動なしのアドオンに移植しています。多くの UI 要素 (ほとんどがボックス/説明と画像) を含むパネルがあり、XUL オーバーレイ ファイルでパネル要素を定義するのは非常に便利です。そうしないと、大量の js コードが肥大化してしまいます。

パネル要素 (親) 自体はコードで動的に作成されます。次に を使用loadOverlayし、「マージ」イベントを待ってから、オーバーレイされたドキュメントからパネル要素の子を追加します。また、削除時に要素がクリーンアップされるようにします。

ただし、オーバーレイを使用すると、AMO レビューに合格しない可能性が高くなります。そして、私が考える理由のいくつかは次のとおりです。

  • ほとんどの場合、オーバーレイ要素は削除中に問題を引き起こします (例: ツールバーのボタンがその位置を覚えているなど)。
  • オーバーレイ ファイルに js/css ファイルを添付すると問題が発生します。
  • loadOverlay にバグがある ( 496320330458 )

そして、ここに私の推論があります:

  • loadOverlay() API 自体は非推奨ではありません。実際、「凍結されておらず、後で変更される可能性があります」。これは、将来的に使用できる可能性があることを意味します。
  • 2 番目のオーバーレイ ロードが失敗するというバグは、オーバーレイ マージなしで初期化しないため、私の場合には当てはまりません。
  • 設定ウィンドウなどに静的オーバーレイを使用することは、現時点では完全に受け入れられます。
  • 私の場合、パネルは設定ウィンドウのように動作します(オンデマンドで表示され、アドオンの削除時にクリーンアップされます)
  • オーバーレイに js/css がアタッチされておらず、要素のイベント リスナーもありません。オーバーレイは、ボックスと説明テキストを定義するためにのみ使用され、それ以上のものはありません。

これらを考慮して、再起動のないアドオンにオーバーレイと loadOverlay() を使用することは許容されますか? そうでない場合、代替手段はありますか?

4

1 に答える 1

0

オーバーレイについては、既存のアドオン ( ehhなど) を拡張する再起動不要のアドオンのソース コードを確認すると、overlay.xul が既存のアドオンと自動的にマージされていることがわかります。したがって、オーバーレイを使用しても問題はありません。

于 2014-04-01T20:39:35.287 に答える