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