先日、ハンセン病への招待が途切れました。 これに関連して、投稿のコメントから写真を表示するプラグインを試してみたいという要望がありました。 さらにハンセン病についての言葉ではなく、FireFoxとChrome用のシンプルなアドオンまたはシンプルなアドオンを少しだけ作成して公開することに関するいくつかの論文。 さて、最後に-工芸品へのリンク。
コンテキスト
Webページで処理されたJSコードとJSコードアドオンは、異なるコンテキストで処理されます。 アドオンからWebページに埋め込まれたスクリプト関数を呼び出すことはできません。逆の場合も同様です。 2つの例を示します。
- アドオンにjs-functionを実装しました(開いているページから写真のプレビューを表示します)。 プレビューを有効にするには、ページコードにリンクを追加し、このリンクの
onclick
イベントでjs関数の呼び出しを記述します。 ただし、このようなコードは機能しません。リンクのクリックは、アドオン機能が表示されていないページのコンテキストで処理されます。 - DOMを操作するには、jsフレームワークのいずれかを使用すると便利です。 ただし、このフレームワークがアドオンが処理しているWebページに含まれていても、それを使用することはできません。
外部jsフレームワークの使用
アドオンでjsフレームワークを使用するには、アドオンに直接挿入する必要があります。 FireFoxの場合、これは次のように行われます。 最初に、フレームワークファイル(私の場合-jquery.js)をアドオンの「コンテンツ」ディレクトリにコピーしてから、外部スクリプトの動的ロードコードを使用します。
Components.classes["@mozilla.org/moz/jssubscript-loader;1"].
getService(Components.interfaces.mozIJSSubScriptLoader).
loadSubScript("chrome://leprokartinki/content/jquery.js");
私の場合、このコードは
window.addEventListener("load",...)
ハンドラーに配置され
window.addEventListener("load",...)
クロムでは、物事は少し簡単です。 ファイル(私の場合-jquery.js)をアドオンフォルダーに配置し、使用する他のjsファイルとともにmanifest.jsonを指すようにします。
アドオンでこれらの操作を行った後、フレームワークの機能を使用することができます
アドオンで
clone()
オブジェクトのクローン作成jQuery関数を使用することができませんでした。 後でクローンなしでやった。 この関数がChromeでどのように動作するかを確認しませんでした。 エラーの原因についての仮定がありますが、私は掘りませんでした。
アドオンの公式公開
FireFoxを使用すると、工芸品をギャラリーに自由に公開し、時間の経過とともにアドオンにステータスを割り当てることができます(「未検証」、「事前チェック済み」、「チェック済み」)。 ステータスが変わるまでに、数日から数週間かかります。 アドオンのステータスは、選択と評価へのエントリに影響します。
ただし、Chromeがストアで公式に公開される可能性があるため、開発者には登録料(5ドル)が必要です。 その後、アドオンを無料でダウンロードしてインストールできるようになります。
試してみたい人のためのタルマッド
PS:ハンセン病の投稿のすべての写真をここ(FireFox)とここ(Chrome)で表示するためのプラグインを2つのクラフトをアップロードしました。
UPD: FireFoxの別のハック -SkypeでWebページで見つかった電話番号を、これらの番号に関する情報を含む電話帳へのリンクに置き換えます。