Home > Tags > XUL
XUL
ページ読み込み完了前にgBrowserオブジェクトにアクセス出来てしまう
- 2010-05-03 (月)
- programming
引き続きFirefoxの機能拡張を作ってるんだけど、不思議な現象に遭遇した。
Firefoxを初回に起動したときにはgBrowserが定義されているのに、二度目に起動したときにはgBrowserが未定義となる。このことに気がつかずに、ちょっとハマってしまったのでメモ。
- Comments: 0
- Trackbacks: 0
XULでJavaScriptを含むUIをオーバーレイさせるときの注意点
- 2010-04-09 (金)
- programming
Firefoxの拡張機能を作る時、UI部品をオーバーレイすることでFirefoxの画面内にボタンを追加したり、既存のUIにスクリプトを追加したりすることができる。
で、さっきブラウザのBackとForwardの隣にあるボタン、back-forward-dropmarker(下記の画像のように、押下するとこれまでのページ遷移履歴のリストが出てくる。)に対して操作したときに、スクリプトを実行させようと思ってXULのオーバレイを作っていたんですが、どうにもうまくいかない。具体的には、XUL内に書いたJavaScriptが実行されていない。
で、なんでかなーと思って悩んでたんですが、無事に解決したのでメモ。

最初に書いていたオーバレイさせるコードはこんな感じ。
<toolbarbutton id="back-forward-dropmarker" type="menu" chromedir="ltr"
disabled="true" tooltiptext="最近表示したページ"
onbroadcast="if (this.disabled) this.disabled =
document.getElementById('Browser:Back').hasAttribute('disabled') &&
document.getElementById('Browser:Forward').hasAttribute('disabled');">
でも、これじゃぁ、上手く実行されない。なんでだろう?と考えてみたところ、もしかしたら&がエスケープされてないんじゃないか?という考えに行きつきました。
通常、HTMLのなかで&のような特殊文字を書くときって、&って書かないといけないんですよね。というわけで、上記のコードを下記のように書き換えてみたら、上手く動きました。
<toolbarbutton id="back-forward-dropmarker" type="menu" chromedir="ltr"
disabled="true" tooltiptext="最近表示したページ"
onclick="wt.my_func('list');"
onbroadcast="if (this.disabled) this.disabled =
document.getElementById('Browser:Back').hasAttribute('disabled') &&
document.getElementById('Browser:Forward').hasAttribute('disabled');">
めでたしめでたし。
- Comments: 0
- Trackbacks: 0
XULからローカルファイルの読み込み・書き込みを行う
- 2009-10-06 (火)
- programming
XULからローカルのファイルを読み書きする必要があったので,その方法を調べていた.
Mozilla developer centerを見ているとFIle I/Oについてのページがあって,これによるとXPCOMを利用することによって,ローカルファイルにアクセスすることが可能になるようです.ただし,このページに従うと,結構コードが複雑になってしまいそうなので,ラッパーライブラリを利用することに.
今回利用したのは,Io.jsというライブラリです.めんどくさい部分が見えないようになってるし,わかりやすいサンプルコードがついているので,非常に利用しやすいです.
- Comments: 0
- Trackbacks: 0
XULからスクロールバーの位置を取得する
- 2009-09-25 (金)
- programming
Firefoxの機能拡張から,ブラウザで開いているページ内におけるスクロールバーの移動量(スクロール量)を取得する方法がわからなくて,しばらく悩んでいたんだけど,色々なサイトを行ったり来たりしているうちに解決したのでメモ.
- Comments: 0
- Trackbacks: 0
Home > Tags > XUL