画面上にマウスを置いた位置にパネルを表示したい。FirefoxのアドオンSDKでパネルの位置をマウスの位置に変更する方法
Firefox SDKのドキュメントはあまり詳しくは書かれていません。パネルの位置を変更する方法についていくつかの問題があります。
画面上にマウスを置いた位置にパネルを表示したい。FirefoxのアドオンSDKでパネルの位置をマウスの位置に変更する方法
Firefox SDKのドキュメントはあまり詳しくは書かれていません。パネルの位置を変更する方法についていくつかの問題があります。
悲しいことに、あなたはできません。ソースコードを見ると、アドオンSDKは常にブラウザウィンドウの中央にパネルを表示します。いくつかのWebページのノードにパネルを固定するための文書化されていないオプションがありますが、これは理由が明らかに文書化されていません(SDK拡張は通常このようなノードを保持できません)。そのオプションが使えても、あなたの問題は解決しません。私は "最も簡単な"ソリューションはpackages/addon-kit/lib/panel.js
となり、メソッドshow()
が画面座標を取ることができるように、このメソッドの下部にあるとy
のopenPopup()
コールの拡張子に変更バージョンを使用していると思います。
私は、ナビゲーションバーにボタンを作成してから、それを使ってパネルを表示しようとしていましたが、ウィジェットを使用してアドオンツールバーに関連付けられているボタンを表示していました。
btn.addEventListener('click', function() {
// do stuff, for example with tabs or pageMod
}, false)
:あなたはこのようになりますビットがあることに気づくだろう彼のコードでは
http://kendsnyder.com/posts/firefox-extensions-add-button-to-nav-bar
:
は、私がここにコードを使用ナビゲーション・バーにボタンを配置するにはWladimirが言及したように、パネルに要素を固定する必要がありますので、clickイベントで次の要素を追加しました:
は私のようなutilsの宣言:
var utils = require("sdk/window/utils");
あなたが実際にあなたのPanelブラウザ内の任意の要素に固定することができます。これは、誰かを助け
panel.show(utils.getMostRecentBrowserWindow().document.getElementById("statusbar-display"));
希望:そうのようなステータスバーに
panel.show(utils.getMostRecentBrowserWindow().document.getElementById("nav-bar"));
またはアンカー:たとえば、ナビゲーションバーにそれを固定することができます。乾杯!