1 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 20:00:38 ] オラ拡張作る。 XULはXMLベースのUI記述言語です。 Mozilla、Firefox、Thunderbird、Netscape等の Gecko系のソフトウェアために開発されました。 このスレはXUL、JavaScriptで利用できるXPCOM、 拡張の作り方などを主に話しあうスレです。 前スレ Mozillaでプログラミング(XUL) その2 pc8.2ch.net/test/read.cgi/tech/1102172958/ 姉妹スレ Geckoベースのブラウザを作ろう pc5.2ch.net/test/read.cgi/tech/1023546699/l50 参考サイト Mozilla Developer Center developer.mozilla.org/ XULPlanet www.xulplanet.com/ 過去スレ Mozillaでプログラミング(XUL) pc5.2ch.net/test/read.cgi/tech/1019704370/ >>2-50 あたりに関連リンク、近況などがあるかも。
65 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 01:26:37 ] flexなbox内に配置した要素のサイズがboxに引きずられて拡大縮小してしまうんだけど、どうすれば防げる? <vbox flex="1"> <image src="xxx.png"/> </vbox>
66 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:27:31 ] >>65 developer.mozilla.org/ja/docs/XUL_Tutorial:Element_Positioning
67 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:21:43 ] >>66 さんくす
68 名前:デフォルトの名無しさん [2007/01/29(月) 23:41:17 ] "@mozilla.org/process/ipc-buffer;1" nsIIPCBuffer を使いたいのですが、自分で 作るしかないのでしょうか?
69 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 00:51:08 ] >>68 enigmail に入ってるやつ使えないかな
70 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 12:21:46 ] >>50 なぜ一般的か、っていうと、mozilla.orgの内部的な慣例ではそうなってるから、だね。 フォルダを一階層余分に付ける直接的な理由は、複数のパッケージを 同一のjarに入れたい場合があるから。 例えば、"example"という名前の拡張を作った場合、 example.jarの構成が、 content/foo/foo.xul content/foo/foo.js content/bar/barOverlay.xul content/bar/barOverlay.js で、アクセス方法が chrome://foo/content/foo.xul chrome://bar/content/barOverlay.xul のような複合パッケージングがありうることを考えると、 「慣例」としては、一階層余分に付ける方が無難になる。 だって、chrome.manifestを content foo jar:example.jar!/foo/ content bar jar:example.jar!/bar/ という風に書けるわけだから。 しかし、現実に拡張を作成する場合、そういう複雑なことをするよりは、 むしろjarを2つ作る方が便利だから、この慣例に従うメリットはない。 納得がいかなければ、en-US.jarとかを覗いてみると良くわかると思う。 まとめ ・jarに「しない」場合じゃなくて、jarに「する」場合のための慣例。 (単に、解凍していない時のファイル構造を見る機会が少ない故の勘違いか) install.js時代は、インストールのスクリプトを書くのがすごく大変だったから、 浅知恵でファイル構成を考えると、すぐインストール不可になっていたのも大きい。 ・現状では無意味。
71 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 13:32:55 ] ttp://www.mozilla-japan.org/events/2006/fxdevcon/presentations/1a.pdf これのScaling and rotationというスライドで紹介されているページの回転とかって 具体的にはどういう技術で可能になるのでしょうか?
72 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 13:51:20 ] cairo
73 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 14:39:18 ] じゃあ今のMinefieldでcairoをつかってTab Effect見たいなことできますか?
74 名前:デフォルトの名無しさん [2007/02/15(木) 16:43:57 ] ところで window { background-color:transparent !important; } とやると、とたんに中身が全く表示されなくなるxul要素が結構あるみたいなんだが、これは仕様?バグ?それとも仕様という名のバグ?
75 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 19:18:23 ] >>74 それ 2.0.0.1 のバグじゃなかったっけ?
76 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:08:24 ] OSを作ってください><
77 名前:74 [2007/03/20(火) 17:31:11 ] >>75 あらら。Firefox2.0.0.2にあげたけど、ダメだったよ…。
78 名前:デフォルトの名無しさん [2007/03/31(土) 07:27:20 ] >>77
79 名前:デフォルトの名無しさん [2007/03/31(土) 08:02:04 ] >>77 仕様という名のバグとも言える仕様。 参考 ttps://bugzilla.mozilla.org/show_bug.cgi?id=70798 ttp://blog.goo.ne.jp/install-maido/e/ea4dfea9c04cea114c06f4c51fc891a8 ttp://level.s69.xrea.com/mozilla/index.cgi?id=20061224_API ttp://maguroban.s41.xrea.com/diary/diary.xcg まとめ 本来Fx3相当に入れるべき(?)patchを2.0.0.1に迷いながらも入れたので、特定のCSS指定でパフォーマンスの悪化、及び表示が狂うなどの現象が起きる。 このpatch自体は表現の幅を広げるが、告知がきちんと出来ていなかった為に一部のTheme職人がアタフタ。 拡張機能の互換性に関わるAPIの変更はマイナーバージョンでは入れないみたいだけど、Themeは無視ですか?その辺の認識を統一よろ。>開発者 Theme作者界隈ではそこそこの話題になったけどね。 機能として入ったものが引き起こした問題だから、2.0.0.1 - ALLが該当する。 個人的には、2に入れようが3に入れようが、Theme作者でmozilla.orgのアナウンスをこまめにチェックする人以外はどうせ同じ所でハマると思う。 今回はアナウンスがアレだったからね……。 それより俺はwindowの背景をtransparentして何がしたいのか聞きたい。
80 名前:77 [2007/04/01(日) 21:21:14 ] windowを透明にする ↓ 背景画像を萌え絵にする うっせー! なにかもんくあるかー!!
81 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:55:19 ] すいません。質問です。 有るウェブページをみていて、そのwebページのソースコードを取得したいんですが、 何か良い方法は有りますでしょうか? 例えば、有るページをみていてそこに書いてあるMozillaと言う文字を読み込んだ瞬間に もじらみたいに変える方法を捜しているんですが良く分からないんです。
82 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:59:50 ] Grease Monkey でも使っとけ
83 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:06:23 ] >>82 Grease Monkeyではどのようにすれば取得できるのでしょうか?
84 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:19:49 ] 理解できました。 すいません。
85 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:44:21 ] JavaScriptの呼び出しについての質問です。 overlay.xulというXULファイルがあって、 <?xml version="1.0"?> <overlay id="helloworldOverlay" xmlns="www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <menupopup id="menu_ToolsPopup"> <menuitem id="helloworldMenuitem" label="Hello, World!" insertbefore="sanitizeSeparator" oncommand="hoge();" /> </menupopup> </overlay> Hello, World!というメニューをクリックしたら、 同じcontentディレクトリのファイルhoge.jsの 以下のようなスクリプトを実行したいのですが、 どうすればoncommandで呼び出せるのでしょうか? function hoge (){ window.alert("hogehoge"); }
86 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 05:33:55 ] scriptタグでインポート
87 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 06:21:35 ] >>86 idを使って呼び出すことは出来ないのでしょうか?
88 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 06:32:22 ] id? 何の話?
89 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 07:42:58 ] >>87 overlay.xulで<overlay〜の行の次に追加。もちろん、hogehogeはあくまで例だが。 <script type="application/x-javascript" src="chrome://hogehoge/content/hoge.js"/> idが何を指すかはよく分からんが、もし相対パスでやろうとしてるなら止めとけ。 例えば、それをbrowser.xulにoverlayしてるんなら、 <script type="application/x-javascript" src="hoge.js"/> という記述は次のように解釈される。(多分。テストはめどいのでしてない) <script type="application/x-javascript" src="chrome://browser/content/hoge.js"/> つまり、overlay先(ここではchrome://browser/content/browser.xul)を基準にした相対パスになる可能性があるので、素直に全部書いた方がいいよ。 で、俺も質問していいか? hack本なんかには「chrome内のscriptではtype="application/x-javascript"にせよ」みたいな事が書いてあるけど何故? 古いバージョン(text/javascriptをサポートしないバージョン)の為だったらchrome.manifest形式のみの拡張とかにはいらんよな……と思ったんだがどうよ?
90 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 08:42:14 ] >>89 経験上、相対パスでおk
91 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 13:39:10 ] Firefoxで、ツールバーアイコンとか動的に表示が変わるタイプのアイコンは chrome://browser/skin/Toolbar.pngみたいな集合体から -moz-image-regionで切り出す場所を変えて使ってるケースが多いようだけど これは各アイコンを別ファイルで持っておくより効率がいいんかな
92 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:31:01 ] アイコン画像がメモリ上に読み込まれるのはその要素が表示される タイミングなので、hoverとかの状態ごとにファイルを分けてると ボタンに最初にmouseoverした時にファイルの読み込みが発生して 一瞬真っ白なアイコンになってしまうので、その回避と思われ
93 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 15:06:13 ] なるほどthx
94 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 16:18:36 ] ファイルの数も抑えられるしファイルを1つ開いただけでエフェクトによる変化を見較べやすいのもあるんじゃないかと思った>画像
95 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 19:19:29 ] キャレットの色とか変える事できますか? 探しているのですがなかなかそれらしい物が見つからないのです
96 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 17:13:06 ] 拡張ムズカシイぽ でもがんばるぽ
97 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 08:02:33 ] defaults/preferences/の設定用JavaScriptの名前ってどうしてる? 俺は"defaults.js"にしてるけど知人は"prefs.js"にしてる。ちなみに俺は"prefs.js"なんてダサいと思うけど知人は"defaults.js"なんt(ry で他人様の拡張機能ばらしたら(拡張機能名).jsが多いっぽい……。 何らかのガイドラインでもあるの?
98 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:31:57 ] >>97 <app install dir>/defaults/pref/*.js で firefox.js, inspector.js, mailnews.js とかになってるからだろうな。 extensions/ 以下ならどうでもいいんだろうけど、 一応他と区別できる名前の方がいいんでないの?
99 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 20:07:30 ] >>9
100 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 20:09:01 ] >>98 thx. >>99 は俺のミス。すまん。
101 名前:デフォルトの名無しさん [2007/04/07(土) 13:56:51 ] Function.prototype.foo = function(){} for( i in a ) dump( i+" : "+a[i]+"\n" ); とやっても、Functionオブジェクトに、fooメソッドが追加されていない。 ブラウザ上では、きちんと追加されているみたいなんだが…。 Functionオブジェクトだけ拡張を認めないとか、そんな規則あったっけ? 一応環境はWinXP、Firefox2.0.0.3で。
102 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 15:42:29 ] >>101 なんか bugzilla ごちゃごちゃしてよくわからんが、たぶんバグ https://bugzilla.mozilla.org/show_bug.cgi?id=350655 [Adding properties to Function prototype fails in chrome] https://bugzilla.mozilla.org/show_bug.cgi?id=300079 [XUL chrome precompiled functions don't inherit from current window's Function.prototype] このへんかなぁ https://bugzilla.mozilla.org/show_bug.cgi?id=355161 [Function.prototype disappears after several seconds of browser's work. (chrome)] 似た症状なんだけど、こっちは治ってる。謎
103 名前:101 [2007/04/07(土) 15:54:53 ] >102 ふぅむ。なんか結構根幹的なところでバグも残っているのね。 なんとかコレ使わないでいける様に頑張ってみます。 ありがとうございます。
104 名前:97 mailto:sage [2007/04/15(日) 00:19:42 ] >>97-100 自己レス。 スタンドアロンXULアプリケーションではない場合(拡張機能)、install.jsでdefaults/preferences/*.jsをコピペして利用する際に、 区別できる名前だった方が拡張機能のデフォルト説明を見つけやすい defaults.jsとかだと重複する可能性がある などの理由から独自の名前の方がいいっぽい。(他にもあるかも) 別に拒否する理由もないから拡張機能名.jsにするよ、本当にthanks.
105 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:59:46 ] もしかしてMDC-en落ちてる?
106 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 01:28:50 ] >>105 今日はMediaWikiアップグレードの日らしいよ ttp://www.bitstampede.com/2007/04/20/the-longness-of-the-day/ 今は表示できるから、もうセットアップ終わったのかな
107 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:01:06 ] browser要素へaddProgressListener使ってnsIWebProgressListenerを取り付ると ブラウザ内で読み込んだページや画像データなどのデータ受信状況を監視できますが、 ページ内で使用したXMLHttpRequestによるデータ受信状況は監視対象とはなりませんか?
108 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 02:38:24 ] >>105-106 MDC実験版(AMOで言うpreviewなヤツ) developer-stage.mozilla.org/ 幾つかテンプレート系の変更が起きてるから翻訳かじってる奴は注意。
109 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:48:54 ] よく「nsIXXX型」という言い方をしますが、これは厳密には 「Components.interfaces.nsIXXXインタフェースを実装したオブジェクト」 という意味になりますでしょうか?
110 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 12:36:56 ] Components.interfaces.nsIXXXインタフェースという型、だろ
111 名前:デフォルトの名無しさん [2007/05/22(火) 13:09:00 ] nsIWebBrowserPersist のsaveURIでhttpで何らかのファイルをダウンロードするときに、httpのステータスコードの取得の仕方をわかる方いますか? 403のページとかが返って来ても、ダウンロードが完了したということになってしまっています。
112 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:49:23 ] プラグインの開発中、ファイルを編集するたびに プラグイン削除→再起動→プラグイン導入→再起動→テスト とするの激面倒なんですが、再起動無しにプラグインだけリロードって できませんか?
113 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:15:38 ] >>112 jar でなくフォルダにインストールされるようにして、 piro.sakura.ne.jp/xul/tips/x0000-2.html XUL Cache を無効にして新規 window 開け
114 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:24:10 ] リロード面とは別の話だが、開発中はインストールしたフォルダを直接弄ったほうが早いよね。 あと、chromeフォルダ以下のjarも展開状態のままで。
115 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 01:01:57 ] >>112 本当にエクステンションじゃなくプラグインを開発してるなら話はマタ違ってくるが エクステンションなら普通ソースでインストールしとくだろう。 まあ、再起動が必要かどうかはまた別の問題だけど.... 別ウインドウを開けばOKとか、再起動必要ない場合も結構有るよ。
116 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 06:54:02 ] つ Extension Developer's Extension
117 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:42:42 ] >>113 ,116 ナイスアドバイスアリガトンです。 XPIにせずフォルダのままロードできるよっていう拡張(プラグインだと 別の意味でした)を見つけて「これで楽になる〜」と思っていたら 新規ウィンドウを開こうが何しようが再起動以外にXULの編集結果反映がされず 困ってましたが、それで無事解決できました! これでようやく本格的にXUL開発に飛び込める・・・
118 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:36:07 ] ttp://developer.mozilla.org/en/docs/Setting_HTTP_request_headers のドキュメントや ttp://kokogiko.net/m/archives/001441.html のコメント欄にあるような、独自のヘッダをリクエスト毎に付けようとしています。 とりあえず独自ヘッダは付くようになりました。 ただ、リクエストするHTMLがframeやimgを含んでいると ブラウザが勝手にframeやimgのリクエストをしますが そのリクエストには上記独自ヘッダが付きません。 要するに自分でURL欄にアドレスを入力してEnterを押した リクエストの一回だけにしか独自ヘッダが付きません。 全てのリクエストに付くようにするにはどうすれば良いのでしょうか?
119 名前:118 mailto:sage [2007/05/24(木) 10:30:40 ] リクエスト毎にヘッダが付かない、は勘違いでした。 独自ヘッダを付加する前に、条件判定用のヘッダの取得をしています。 var head = oHttp.getRequestHeader("Authorization"); oHttp.setRequestHeader("X-HOGE", "huga", false); Authorizationのヘッダの内容を取得しようとして失敗し 後続のコードが実行されていないだけでした。 という訳で質問を変更します。Authorizationヘッダを 毎リクエスト正しく取得するにはどうすれば良いのでしょうか?
120 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 19:54:26 ] 既存のコンポーネント(バイナリ)をJavaScriptのXPCOMでoverrideするには どうすれば良いのでしょうか? 例えば"@mozilla.org/network/protocol/about;1?what=blank"を 独自の処理に置き換えたいと思っています。 www.mozdev.org/notes/hello_world_js_component.html とかは一応読みました。 interface nsIMyExam : nsIAboutModule { nsIChannel newChannel(nsIURI URI); }; と function MyComponent() {} MyComponent.prototype = { newChannel: function () { dump("My Test\n"); }, … という風に継承(上書き)定義すれば良いのでしょうか? あと、同じscheme名のメソッドをoverride出来たとして、 そのメソッドの中でオリジナルのメソッドを実行するにはどうすれば良いのでしょうか? www.xuldev.org/blog/?p=58 にあるような、既存の関数の置き換え例はちらほら見掛けるのですが… 以上、ご存知の方がいらっしゃいましたら、宜しくご教示お願い致します。
121 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 13:29:35 ] 昨日のDevConでそういう話が出ていたような・・・ ttp://www.ne.jp/asahi/nanto/moon/mozilla/enhanced-feed-preview Enhanced Feed PreviewではファクトリーのregisterSelfで起動時に毎回 コンポーネントを上書きしてる?とか言ってた気がする
122 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:49:13 ] XPCOMコンポーネントをCで作ったら邪道?Java嫌いなんだよね
123 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 16:02:34 ] べつにいいんじゃないの?
124 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 17:04:39 ] なんでJavaがでてくるんだ?
125 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 20:28:14 ] >>124 XULもJavaもクロスプラットフォーム
126 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:42:24 ] JavaXPCOMもPyXPCOMも実際に使われてる例は知らないが、C++は王道中の王道だろ。 ただ各プラットフォーム用のバイナリを配るのが面倒だ。
127 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:53:10 ] Cで作るにはC++のABIに気をつけないといけないはず。
128 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 05:04:15 ] Adaをつかいまつ
129 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 11:42:04 ] JavaScriptよりLiveScriptのほうがかっこいいじゃん
130 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 14:07:36 ] prefwindowではonbeforeunloadイベントは使えませんか? それから、XULのどの要素がどのイベントを持っているかはどうやって調べますか?
131 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 01:36:10 ] “ もじら組スタッフは、以前からスタッフだったyukichiさんをもじら組から除名することを決めた。 ttp://eto.tumblr.com/post/4368304 kazhik.tech:もじら組スタッフの除名 ttp://sabakan.tumblr.com/post/4361567 kazhik.tech:もじら組スタッフの除名 ttp://plnet.jp/nozzzzz/855834 もじら組スタッフの除名 ttp://blog.livedoor.jp/kazhik/archives/51051450.html
132 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 02:25:13 ] >>131 それって何か大事なの? ってか yukichi って誰? 何やらかしらの?
133 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 03:22:29 ] ggr
134 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 09:45:56 ] tumblr を貼る意味が分からない
135 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:15:22 ] >>131 もじら組で今起こっていること amigomr.dw.land.to/blog/article.php?id=417 Re: もじら組で今起こっていること d.hatena.ne.jp/smellman/20070627/1182960138 [Web] もじら組除名事件でWikipedia批判が再燃か? d.hatena.ne.jp/hagex/20070629#p3 【百科事典】Wikipedia ウィキペディア ゆきちスレ hobby9.2ch.net/test/read.cgi/hobby/1177425675/
136 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:32:41 ] >>135 に追加。 福澤俊とは - はてなダイアリー d.hatena.ne.jp/keyword/%CA%A1%DF%B7%BD%D3 >自分が知らなければ、要出典タグを貼りに行く、もしくは「こんな単語をはじめて聞いた」などの発言を執拗に繰り返す利用者の一人でもある。 >2007年5月6日には問題のエントリーに投稿されたキリカに対するKasumoererのコメントを一括削除したことで話題となる。 >JCA-NETなどの極左団体および特定アジア団体とウィキペディア日本語版の関係は、よほど知られたくない事項の様子である。
137 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 18:49:36 ] この Kasumoerer って奴の私怨で FA ?
138 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 19:11:02 ] FA
139 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:05:17 ] >>137-138 何この酷い自演
140 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 16:10:32 ] >>137-138 笑える
141 名前:デフォルトの名無しさん [2007/07/02(月) 23:20:10 ] Thunderbirdの拡張機能を作って、何人かの人に使ってもらっているのですが、正しく動作しないとの報告がありました。 原因を調査中なのですが、設定情報を保存するあたりにバグがあるのではないかと思いました。 設定情報の保存は、以下のようなクラスを作っているんですが、何かおかしな所があれば指摘してほしいです。 よろしくお願いします。 --- PrefUtil = { PREF : Components.classes['@mozilla.org/preferences;1'].getService(Components.interfaces.nsIPrefBranch), KEY : "hogehoge", getPref : function() { try{ var type = PrefUtil.PREF.getPrefType(PrefUtil.KEY); const nsIPrefBranch = Components.interfaces.nsIPrefBranch; switch (type) { case nsIPrefBranch.PREF_STRING: return PrefUtil.PREF.getCharPref(PrefUtil.KEY); case nsIPrefBranch.PREF_INT: return PrefUtil.PREF.getIntPref(PrefUtil.KEY); case nsIPrefBranch.PREF_BOOL: default: return PrefUtil.PREF.getBoolPref(PrefUtil.KEY); } }catch(e){ return ""; } }, setPref : function(str) { PrefUtil.PREF.setCharPref(PrefUtil.KEY, str); } } --- var str = Pref.getPref(); のような感じで使います。
142 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:14:32 ] >>141 日本語が入った文字列を getCharPref/setCharPref で出し入れしようとしてないか? そうなら代わりに getComplexValue/setComplexValue を使うべき。 それと特別な事情がない限り PrefUtil.PREF や PrefUtil.KEY じゃなく this.PREF や this.KEY にするのが普通じゃないか?
143 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 12:11:22 ] >>141-142 ttp://nanto.asablo.jp/blog/2006/10/23/572458 この方法を使えばgetComplexValue/setComplexValueつかわなくてもいけるよ
144 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 12:12:41 ] あとgetは型を自動判別してるのにsetは文字列型限定って何か意味あるの?
145 名前:sage [2007/07/03(火) 23:01:04 ] 141です。ご指摘ありがとうございます。 >142 現在は日本語はつかっておりません。 また、ご指摘の通りthis.PREFのほうがいいですね。 >143 そんな方法が。参考になります。 >144 特に意味はありません。。getを張り切って作ったけど、結局setでは文字列しか ありえないな、、と思って手を抜いてしまいましたorz なお、不具合に関しては別の箇所が原因だと言うことがわかり一件落着しました。 ご協力ありがとうございましたm(..)m
146 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:30:38 ] うっふん
147 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 03:01:41 ] event.screenX, event.screenYを使わずに現時点のマウスカーソルの位置を知る方法ありますでしょうか?
148 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 05:06:30 ] >>147 xpcomコンポーネントを作ればできるよ
149 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:44:41 ] overflow:autoでスクロールバーを表示させた要素のスクロール位置を 動的に調整することはできますか?
150 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:44:59 ] よーし、Firefoxの拡張の中身見てXUL勉強しちゃうゾーとpiroさんのサイトの色々表示させる設定をしたところ、いきなり詰まってしまいました。すみませんが教えてください。テキストボックスをクリックするたびに Auto Copy 0.6.4 と言う拡張が jsコンソールに エラー: target.textbox has no properties ソースファイル: chrome://autocopy/content/autocopyOverlay.js 行: 653 とエラーを表示します。これを表示させないようにするにはどう書き換えればいいでしょうか。 function Autocopy_isTargetEditable(target)〜 if(target) { if(target.toString().match(/object XUL/i)) { ココ→if(target.textbox.value) { return true; } } }
151 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:31:29 ] target に textbox が存在しない事がエラーの原因なら value を参照する前に textbox が null でないかチェックすればエラーは回避できる if (target.textbox && target.textbox.value)
152 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 02:05:43 ] >>151 ありがとうございます。エラーが出なくなりました。 これで Fx でググったりサイト眺めながら拡張を見れます。 ありがとうございました。
153 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 20:34:42 ] jQuery だとか prototype.js だとか、そっち系のライブラリはもういいよってくらい氾濫してるくせに、 ぜんぜん XPCOM をラップするライブラリがないぜ?いや、jslib とか mozlib とかはあるけどさ・・・ Components だか Interfaces だか、 ns...みたいなプリフィックスとか見るだけで吐き気がするぜ。 XULRunner だってさ、.xul を D&D で投げるだけでとりあえず実行してくれたら、お手軽で素敵じゃないか?
154 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 22:22:50 ] つ FUEL 一応Firefox2にもバックポートできるようにするみたいなこと言ってたような気がする…
155 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 11:01:02 ] 文字コードの自動判定ってどーやればいいんだろーか
156 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 22:47:18 ] >>155 Mozillaのuniversalchardetはscriptableじゃないインターフェイスらしいので、それをどうにかするか、それをCライブラリ化したものがあるからそれを使うか……。
157 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 23:40:22 ] >>156 あら、そーなんだ。うーん、複数の文字コードでとりあえず一度変換させて、 U+FFFDの数で推測する手もなくはないけどねぇ。貴重な情報どーもdクス。
158 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 22:42:48 ] mozStorageにデータを入れて、サイドバーにmozStorageから取得したデータを 表示させたいと思っています。 もし各ウィンドウのサイドバーごとにデータベースへの接続を持たせると、複数のウィンドウが 開かれている状態などでは、同時にデータベースへアクセスする可能性が有るので developer.mozilla.org/en/docs/Storage の You can not access a single database from multiple connections from different threads. に引っかかると思います。 こういう拡張を作成する場合、どのようにしてmozStorageを扱うのが良いのでしょうか?
159 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:01:54 ] JSからXPCOM経由でデータベース接続する分には「different threads」には引っかからないのでは。 もちろんFirefoxのプロセスはひとつだけという条件付きですけど。
160 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 02:33:34 ] 各 window は個別にスレッドを持ってたと思う。 components/ に その拡張専用の storage service(singlton) を持つ JS XPCOM をつくっておいて、 サイドバー XUL からはそのサービスを介してだけアクセスすればいいんじゃないかな。 Places(history,bookmarks) もそんなかんじだし。
161 名前:158 mailto:sage [2007/09/12(水) 03:01:47 ] なるほど、XPCOMを作れば解決出来そうですね。 調べてみます。有難うございました。
162 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 17:02:11 ] XUL チュートリアル(和訳) xul-app.hp.infoseek.co.jp/xultu-janit/ 上のページは、元々「有限会社エヌアイティー技術情報部」というサイトに あったものでした。 web.archive.org/web/20020609143757/http://www.janit.com/xml/XUL/ なぜか2002年に突然削除されてしまいましたが。このXULスレの初代のころです。 昨日、その元サイトの移転先を見つけました。断言はできませんが、状況から 見て、どうやら訳者様は亡くなっておられるようです。 www.geocities.jp/ogaponman/TechnoInf/ www.geocities.jp/ogaponman/ 合掌。
163 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 15:14:45 ] www.mozilla.gr.jp/~kazhik/xul/tutorial02.html 例えばこれでtextbox内でENTERを押すとHELLOボタンが押されたことにしたい場合ってどうしたらいいんでしょうか。 すいませんが教えてください。
164 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:05:36 ] >>163 textbox に onkeypress="if(event.keyCode==13)hello()" とかすれば?
165 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 16:17:58 ] ところで DOM_VK_RETURN じゃなく DOM_VK_ENTER が出てくる環境ってあるの?