― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―
ログイン
ユーザー登録
FAQ
検索
タブのコンテクストメニューへオーバーレイしたい
モデレータ:
Forum Moderators
掲示板トップ
»
相互開発サポート
»
拡張機能
All times are UTC + 9 hours
返信する
ユーザー名:
件名:
オプション:
BBCode
:
ON
[img]:
ON
[flash]:
OFF
[url]:
ON
スマイリー:
ON
BBCode を無効にする
フォントサイズ:
極小
小
標準
大
極大
フォントカラー
スマイリー
スマイリーを全て表示する
トピックのレビュー
[quote="BitBiter"]mitsuguさん アドバイスありがとうございます。 単純なオーバーレイ表示ができないとお聞きして、developer center を彷徨ってみました。 少々、強引な気もしますが、 ・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu"); ・addEventListener('popupshowing', ... とやって、所与の目的を達成できました。 それにしても、あとちょっとの所が難しいですね。 本当に、ありがとうございました。[/quote]
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
認証コード:*
上の画象に表示されている文字を入力してください。各文字は大文字・小文字の区別があります。
トピックのレビュー - タブのコンテクストメニューへオーバーレイしたい
作成者
メッセージ
BitBiter
記事の件名:
Re: タブのコンテクストメニューへオーバーレイしたい
Piro さんが書きました:
タブのコンテキストメニューの項目の追加方法としては、現状ではそれが定番ですね。
拙作アドオン「マルチプルタブハンドラ」に依存してもよければ、簡単に項目を挿入できるAPIを提供しています。参考までにどうぞ。
http://piro.sakura.ne.jp/xul/_multipletab.html
試行錯誤の末であっても、定番にたどり着けたなら、うれしい限りです。
再発明も積もれば力になると信じております。
「マルチプルタブハンドラ」
これははすごい高機能ですねぇ。
まだまだ初心者なため、自作がさらに外部のアドオンから呼び出される、なんて事態を想定してませんでした。
少しずつひもといて、勉強させていただきます。
mitsugu さんが書きました:
そうですね。イベント・ハンドラを追加する方が楽でした。ミスリードするようなことを書いてしまって申し訳ありませんでした。
いえいえ。メニューアイテムの挿入方法を探しているうちに、前述の方法にたどり着けましたので、非常に助かりました。
ありがとうございました
[quote="Piro"]
タブのコンテキストメニューの項目の追加方法としては、現状ではそれが定番ですね。
拙作アドオン「マルチプルタブハンドラ」に依存してもよければ、簡単に項目を挿入できるAPIを提供しています。参考までにどうぞ。
http://piro.sakura.ne.jp/xul/_multipletab.html[/quote]
試行錯誤の末であっても、定番にたどり着けたなら、うれしい限りです。
再発明も積もれば力になると信じております。
「マルチプルタブハンドラ」
これははすごい高機能ですねぇ。
まだまだ初心者なため、自作がさらに外部のアドオンから呼び出される、なんて事態を想定してませんでした。
少しずつひもといて、勉強させていただきます。
[quote="mitsugu"]
そうですね。イベント・ハンドラを追加する方が楽でした。ミスリードするようなことを書いてしまって申し訳ありませんでした。[/quote]
いえいえ。メニューアイテムの挿入方法を探しているうちに、前述の方法にたどり着けましたので、非常に助かりました。
ありがとうございました
Posted:
2009年9月28日(月) 23:08
mitsugu
記事の件名:
Re: タブのコンテクストメニューへオーバーレイしたい
BitBiterさん さんが書きました:
・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
・addEventListener('popupshowing', ...
そうですね。イベント・ハンドラを追加する方が楽でした。ミスリードするようなことを書いてしまって申し訳ありませんでした。
[quote="BitBiterさん"]
・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
・addEventListener('popupshowing', ...
[/quote]
そうですね。イベント・ハンドラを追加する方が楽でした。ミスリードするようなことを書いてしまって申し訳ありませんでした。
Posted:
2009年9月28日(月) 06:40
Piro
記事の件名:
Re: タブのコンテクストメニューへオーバーレイしたい
BitBiter さんが書きました:
少々、強引な気もしますが、
・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
・addEventListener('popupshowing', ...
とやって、所与の目的を達成できました。
タブのコンテキストメニューの項目の追加方法としては、現状ではそれが定番ですね。
拙作アドオン「マルチプルタブハンドラ」に依存してもよければ、簡単に項目を挿入できるAPIを提供しています。参考までにどうぞ。
http://piro.sakura.ne.jp/xul/_multipletab.html
[quote="BitBiter"]少々、強引な気もしますが、
・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
・addEventListener('popupshowing', ...
とやって、所与の目的を達成できました。[/quote]
タブのコンテキストメニューの項目の追加方法としては、現状ではそれが定番ですね。
拙作アドオン「マルチプルタブハンドラ」に依存してもよければ、簡単に項目を挿入できるAPIを提供しています。参考までにどうぞ。
http://piro.sakura.ne.jp/xul/_multipletab.html
Posted:
2009年9月28日(月) 01:34
BitBiter
記事の件名:
Re: タブのコンテクストメニューへオーバーレイしたい
mitsuguさん アドバイスありがとうございます。
単純なオーバーレイ表示ができないとお聞きして、developer center を彷徨ってみました。
少々、強引な気もしますが、
・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
・addEventListener('popupshowing', ...
とやって、所与の目的を達成できました。
それにしても、あとちょっとの所が難しいですね。
本当に、ありがとうございました。
mitsuguさん アドバイスありがとうございます。
単純なオーバーレイ表示ができないとお聞きして、developer center を彷徨ってみました。
少々、強引な気もしますが、
・document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
・addEventListener('popupshowing', ...
とやって、所与の目的を達成できました。
それにしても、あとちょっとの所が難しいですね。
本当に、ありがとうございました。
Posted:
2009年9月27日(日) 23:52
mitsugu
記事の件名:
Re: タブのコンテクストメニューへオーバーレイしたい
もうすこしスマートにするなら以下の id を持つ要素のいずれかを DOM API で検索し、その親要素の子要素、つまり検索結果の兄弟要素として新規のメニューアイテムを挿入するという方法もあります。
context_newTab
context_reloadTab
context_reloadAllTabs
context_closeOtherTabs
context_openTabInWindow
context_bookmarkTab
context_bookmarkAllTabs
context_undoCloseTab
context_closeTab
どちらにせよ、オーバーライドは無理すじのような気がします。
もうすこしスマートにするなら以下の id を持つ要素のいずれかを DOM API で検索し、その親要素の子要素、つまり検索結果の兄弟要素として新規のメニューアイテムを挿入するという方法もあります。
[list]
[*]context_newTab
[*]context_reloadTab
[*]context_reloadAllTabs
[*]context_closeOtherTabs
[*]context_openTabInWindow
[*]context_bookmarkTab
[*]context_bookmarkAllTabs
[*]context_undoCloseTab
[*]context_closeTab[/list]
どちらにせよ、オーバーライドは無理すじのような気がします。
Posted:
2009年9月27日(日) 19:44
mitsugu
記事の件名:
Re: タブのコンテクストメニューへオーバーレイしたい
BitBiter さんがすでに見つけられているとおり、タブバー上のコンテキストメニューを見つけました。tabbrowser.xml の 85 行目の xul:menupopup 要素がそれです。
id 属性ではなく anonid 属性が振られています。値はこれも BitBiter さんがすでに見つけられているとおり "tabContextMenu" です。
タブバー上のコンテキストメニューが開くタイミングで発生する popupshowing イベントのイベントハンドラは、この anonid="tabContextMenu" の menupopup 要素から呼び出されている updatePopupMenu になります。updatePopupMenu 内で menuitem を動的に非表示にしているようです。
私が思い付くのは DOM を利用して xul:menupopup 要素のうち、anonid 属性が tabContextMenu のものを検索し、xul:menuitem 要素を子要素として挿入するくらいでしょうか。
> また、よろしければ、こういった場合の汎用的な解決法を教えていただけませんでしょうか。
おそらく地道にハックするしかないのでは。
効率のよい方法があれば私も識者よりご教示頂きたいです。
BitBiter さんがすでに見つけられているとおり、タブバー上のコンテキストメニューを見つけました。tabbrowser.xml の 85 行目の xul:menupopup 要素がそれです。
id 属性ではなく anonid 属性が振られています。値はこれも BitBiter さんがすでに見つけられているとおり "tabContextMenu" です。
タブバー上のコンテキストメニューが開くタイミングで発生する popupshowing イベントのイベントハンドラは、この anonid="tabContextMenu" の menupopup 要素から呼び出されている updatePopupMenu になります。updatePopupMenu 内で menuitem を動的に非表示にしているようです。
私が思い付くのは DOM を利用して xul:menupopup 要素のうち、anonid 属性が tabContextMenu のものを検索し、xul:menuitem 要素を子要素として挿入するくらいでしょうか。
> また、よろしければ、こういった場合の汎用的な解決法を教えていただけませんでしょうか。
おそらく地道にハックするしかないのでは。
効率のよい方法があれば私も識者よりご教示頂きたいです。
Posted:
2009年9月27日(日) 18:04
BitBiter
記事の件名:
タブのコンテクストメニューへオーバーレイしたい
初めまして、BitBiterと申します。
現在、Firefox3.5用のextensionの作成にチャレンジしています。
いくつかのチュートリアルを参照して、Hello Worldレベルは出せるようになりました。
が、Firefox本体へのオーバーレイ表示で、タイトルの通り、
タブのコンテクストメニューへ、項目を挿入しようとした段階で、つまづいてしまいました。
各チュートリアルは、たいがいトップレベルのメニューか contentAreaContextMenu への
追加をしていますが、タブのコンテクストメニューを見つけられませんでした。
browser.jar をばらして、「tabContextMenu」という項目を見つけたので、
<menupopup id="tabContextMenu">...
とやってみましたが、上手く反映されず。
エラーコンソールにもなにも出力されず。。。
どうすれば、項目を追加できるのでしょうか。
また、よろしければ、こういった場合の汎用的な解決法を教えていただけませんでしょうか。
よろしくお願いし致します。
初めまして、BitBiterと申します。
現在、Firefox3.5用のextensionの作成にチャレンジしています。
いくつかのチュートリアルを参照して、Hello Worldレベルは出せるようになりました。
が、Firefox本体へのオーバーレイ表示で、タイトルの通り、
タブのコンテクストメニューへ、項目を挿入しようとした段階で、つまづいてしまいました。
各チュートリアルは、たいがいトップレベルのメニューか contentAreaContextMenu への
追加をしていますが、タブのコンテクストメニューを見つけられませんでした。
browser.jar をばらして、「tabContextMenu」という項目を見つけたので、
<menupopup id="tabContextMenu">...
とやってみましたが、上手く反映されず。
エラーコンソールにもなにも出力されず。。。
どうすれば、項目を追加できるのでしょうか。
また、よろしければ、こういった場合の汎用的な解決法を教えていただけませんでしょうか。
よろしくお願いし致します。
Posted:
2009年9月27日(日) 15:44
掲示板トップ
»
相互開発サポート
»
拡張機能
All times are UTC + 9 hours
ページ移動:
フォーラムを選択
------------------
インフォメーション
お知らせ
リリース情報
相互ユーザーサポート
Mozilla Firefox
Firefox for Android
Firefox for iOS
Mozilla Thunderbird
Thunderbird for Android
SeaMonkey (Mozilla Suite)
拡張機能・テーマ
Firefox OS
その他
Calendar
相互開発サポート
Mozilla アプリケーション
拡張機能
テーマ
その他
Firefox Hacks
その他の話題
web 標準
雑談
MozillaZine.jp について