1 名前:デフォルトの名無しさん mailto:sage [04/12/05 00:09:18] オラ拡張作る。 前スレ Mozillaでプログラミング(XUL) pc5.2ch.net/test/read.cgi/tech/1019704370/
101 名前:デフォルトの名無しさん mailto:sage [04/12/17 04:31:04] ページがロードされるたびに、WebページのJavaScriptより先にスクリプトを 実行する方法はありますか? browserにaddEventListener('load')する方式だと遅すぎるようです。 TbEみたいにメソッド乗っ取りするしかないのでしょうか。
102 名前:デフォルトの名無しさん mailto:sage [04/12/17 16:28:12] RDFデータソースの操作って難すぃね
103 名前:デフォルトの名無しさん mailto:sage [04/12/17 16:38:26] www.kanzaki.com/book/rdf/ そういえばこんどRDFの解説本が出るみたいですよ
104 名前:デフォルトの名無しさん mailto:sage [04/12/17 18:34:17] >>102 オブジェクト指向じゃなく手続き型だからね
105 名前:デフォルトの名無しさん mailto:sage [04/12/17 20:45:07] >>103 理論的な部分はともかく、実際に手でコードを書いて遊んでみたほうが よくわかると思います。 >>104 個人的には究極のオブジェクト指向だと思う。 DOMが子供だましに思えるほど。
106 名前:デフォルトの名無しさん mailto:sage [04/12/17 21:43:47] >>105 オブジェクト指向について分かってないだろ 例: オブジェクト指向→ rdf=new 〜(); rdf.delete(); 手続き型→ rdfutil=new 〜() rdfutil.delete(rdf);
107 名前:デフォルトの名無しさん mailto:sage [04/12/17 22:58:08] >>106 RDFがわかってないだけでしょ
108 名前:102 mailto:sage [04/12/18 00:06:39] 難すぃというか面倒くさいね
109 名前:デフォルトの名無しさん mailto:sage [04/12/18 00:09:38] RDFはデータ構造。 オブジェクト指向はプログラミングの様式。 手続き型なのは、RDFを扱うためのMozillaの実装。
110 名前:デフォルトの名無しさん mailto:sage [04/12/18 00:14:27] まあSQLでデータベースをいじるのに比べたら全然難しいよね
111 名前:デフォルトの名無しさん mailto:sage [04/12/18 01:16:32] addEventListenerの第三引数のuseCaptureってのが意味不明なのですが、 これをtrueにするのとfalseにするのとではどう違ってくるのでしょうか?
112 名前:デフォルトの名無しさん mailto:sage [04/12/18 01:53:23] ttp://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-capture ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-ref/Events/ trueだと、リスナーが登録されたノードの内部で起こったイベントについて、そのリスナーが真っ先に呼ばれる。 falseだと、イベントが発生したノードからリスナーが登録されたノードまでイベントが伝搬した後で、マターリとそのリスナーが呼ばれる。
113 名前:デフォルトの名無しさん mailto:sage [04/12/18 02:31:49] >>112 ありがとうございます。 前スレをのぞいたら、具体例が。 なんとなくわかってきました。 902 :デフォルトの名無しさん :04/11/05 09:17:34 現在、Firefoxの拡張作成をちょこちょこ勉強しているのですが、 Tab,Windowの新規作成時のタイミングを得たいのですが、 試してみたaddEventListener("load",では"更新"にも反応してしまいます。 他に何か方法はありますでしょうか? 903 :デフォルトの名無しさん :04/11/05 15:07:29 >>902 window.addEventListener('load', listener, false) 最後のfalseがポイント
114 名前:デフォルトの名無しさん mailto:sage [04/12/18 07:35:45] >>111-113 XUL Event Propagation www.mozilla-japan.org/docs/xul/xulnotes/xulnote_events.html ここに詳しく解説してある
115 名前:デフォルトの名無しさん mailto:sage [04/12/18 22:57:57] 開いてるウィンドウをすべて取得したいのですが、RDFデータソース以外から取得できますか?
116 名前:デフォルトの名無しさん mailto:sage [04/12/18 22:59:23] >>115 www.xulplanet.com/references/xpcomref/ifaces/nsIWindowMediator.html
117 名前:デフォルトの名無しさん mailto:sage [04/12/19 15:54:12] 外部ファイルからテキストを一行づつ読み込むことってできますか? nsILineInputStream というのがありますが、の readLine() を呼び出すとクラッシュしてしまいます。
118 名前:デフォルトの名無しさん mailto:sage [04/12/19 17:22:37] XULのウィンドウを最前面ではなく背面に表示したいのですが、 openDialog(URL, "", "alwaysLowered")ではもちろん常に背面に表示されてしまいます。 タスクバーを切り替えてフォーカスしたときや必要なときに最前面に出せるようにはできませんか? nsIWindowMediatorあたりをさぐってみたのですが、get/setZLevelといったメソッドはなぜか使えないようです。
119 名前:デフォルトの名無しさん mailto:sage [04/12/19 18:14:50] >>117 クラッシュしない。 >>118 noscriptってちゃんと書いてある。
120 名前:デフォルトの名無しさん mailto:sage [04/12/19 18:20:34] >>117 Firefox 1.0 で nsILineInputStream は問題なくうごくよ。 ただ、readLine はすごく遅いから 全部読み込んで、String.split("\n") したほうがいい。
121 名前:117 mailto:sage [04/12/19 19:28:18] 当方Firefox1.0(Linux i686)で、やはりクラッシュするするのですが、 >>120 の事情もあるので結局 split("\n");を使うことにしました。ありがとうございます。
122 名前:デフォルトの名無しさん mailto:sage [04/12/19 19:46:33] >やはりクラッシュする ぶっちゃけ、あんたの書き方が悪いんでしょ。 他人や機械のせいにするくらいなら、掲示板で質問しない方がいい。
123 名前:デフォルトの名無しさん mailto:sage [04/12/20 06:58:42] むしろJavaScriptでクラッシュなんてどうやったらできるんだ
124 名前:デフォルトの名無しさん mailto:sage [04/12/20 08:36:46] 「あんたの書き方が悪い」で済ませられない重要なものかもしれないぞ
125 名前:デフォルトの名無しさん mailto:sage [04/12/20 12:03:51] >>123 できる。俺もThunderbirdがクラッシュした。 @mozilla.org/messengercompose/quotingのQuoteMessage()に渡した nsIStreamListenerで、onStartRequest()が呼ばれた後にonDataAvailable()が 呼ばれる代わりにクラッシュした。コールバックだと、自分のコードのどこが まずいのかよく分からん。 ソースからデバッグビルドのThunderbirdを作って、Emacs + GDBで追いかけ ようかと思ったけど、そうなるとXULの範疇越えてるし。
126 名前:デフォルトの名無しさん mailto:sage [04/12/20 18:50:29] 前から疑問に感じていたのですが、XPCOMインターフェースの接頭辞nsは何の略ですか?
127 名前:デフォルトの名無しさん mailto:sage [04/12/20 18:59:37] ネットスケープじゃないの。
128 名前:デフォルトの名無しさん mailto:sage [04/12/20 19:02:03] なぜmzじゃないんですか?
129 名前:デフォルトの名無しさん mailto:sage [04/12/20 19:11:19] Netscape社が作ったからだろ。おまえの頭はカボチャか?
130 名前:デフォルトの名無しさん mailto:sage [04/12/20 19:14:41] カボチャじゃありません。ウンコです。 |人 |___) |__)クスクス |∀・ )  ̄ ̄ ̄ ̄
131 名前:デフォルトの名無しさん mailto:sage [04/12/21 00:25:06] >>128 mozITXTToHTMLConv や mozIJSSubScriptLoader とか moz から始まるのがあったりする。
132 名前:デフォルトの名無しさん mailto:sage [04/12/21 05:54:43] 任意のWindowのResourceを取得する方法はありますか? getWindowForResourceはあるのですが、その逆がありません。
133 名前:デフォルトの名無しさん mailto:sage [04/12/21 18:09:15] >>131 あるにはあるけどかなりの少数派だね。 いまさらnsをmozに付け替えるわけにはいかないから、 nsの意味を捏造した方が早いと思う。 ネームスペースとか。 COMに全然関係ないな…
134 名前:132 mailto:sage [04/12/21 18:21:47] 少し質問を変えます。 getWindowForResourceを使うためにWindowのResourceを取得する方法を模索しているのですが、 www.xulplanet.com/tutorials/xultu/xpcomex.html ここを見ると、templateでなぜかIDが割り当てられていて そのIDからgetWindowForResourceしてるようなのですが WindowのResourceを取得する方法は他にないのでしょうか?
135 名前:デフォルトの名無しさん mailto:sage [04/12/21 19:07:32] >>134 なぜリソースが必要なんだ?
136 名前:デフォルトの名無しさん mailto:sage [04/12/21 19:13:26] >>135 リソースというかgetWindowForResourceで使う引数が欲しいのです。
137 名前:デフォルトの名無しさん mailto:sage [04/12/21 19:15:01] 普通にwindowがあれば要らないんじゃない?
138 名前:デフォルトの名無しさん mailto:sage [04/12/21 19:24:56] >>137 それが要るプログラムな訳でして・・ とりあえず>>134 のURL先のサンプルソースで割り当てられてあるIDを RDFデータソースから取得できたらいいのですが。
139 名前:デフォルトの名無しさん mailto:sage [04/12/21 20:00:37] >>138 多分、かなりアホなことやってると思うよ。 とりあえず、>>134 を読んでリソースの受け取り方がわからないようじゃ、 RDFとか口走るのはどうかと思う。 つーか、あなたは>>115 でしょ? データソース、本当に要るのか? ウィンドウのリストがあれば満足なんじゃないのか?
140 名前:デフォルトの名無しさん mailto:sage [04/12/21 20:16:34] このスレだけでもずいぶんいろんなプロジェクトが進んでるみたいだけど 完成したら晒してもらえるかな? たとえば以前あった、Googlebarの検索語を全角空白で区切っても ちゃんと動作するようにしたのなんかぜひ使ってみたいし、 このスレで出た質問がどう生かされたのか見てみたい。
141 名前:デフォルトの名無しさん mailto:sage [04/12/21 20:26:58] 最近このスレに感じの悪いやつが一人紛れ込んでるな。
142 名前:デフォルトの名無しさん mailto:sage [04/12/21 20:51:08] >>139 はぁ、説明するのまんどくさいんでもういいです。
143 名前:デフォルトの名無しさん mailto:sage [04/12/21 20:56:00] むしろ、情報を小出しにしてるやしの方がアレだと思う。 まあ、ムキにならずにタチの悪い質問はスルーした方がお互いの為ではあるな。
144 名前:デフォルトの名無しさん mailto:sage [04/12/21 21:38:49] 強制IDまだ~?と言ってみるテスト。 >>140 >いろんなプロジェクトが進んでるみたい 公開されているのがほとんどです。(ScrapBookとかMoz2chとか) >Googlebarの検索語を全角空白で区切ってもちゃんと動作するようにしたの 是は簡単にできる気がします。 >>134 resourceという変数はDOMの(要素の)ノードが入っていますのでそれを入れればいいかと
145 名前:144 mailto:sage [04/12/21 21:40:21] というかgetWindowForResourceからノード返せといっているのか。 window.document.getElementsByTagName("*")でいいかと
146 名前:デフォルトの名無しさん mailto:sage [04/12/21 21:56:09] >>145 多分違う。
147 名前:144 mailto:sage [04/12/21 21:58:58] いや、>>132 のやりたい事
148 名前:デフォルトの名無しさん mailto:sage [04/12/21 21:58:59] >resourceという変数はDOMの(要素の)ノードが入っています そもそもこれが間違い
149 名前:144 mailto:sage [04/12/21 22:00:05] あ… 属性ノードの間違いorz スマソ
150 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:03:27] 混沌としてきたなぁ。 もしDOMの話をしてるんだったら、属性じゃなくて、要素のID属性だから、 それでいいんだけど、多分、>>132 のやりたいことは コンテナからRDFResouceを直に取り出すことじゃないかな。
151 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:04:08] んでリファレンス見たら単にID渡せば良いだけという罠
152 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:06:40] とりあえず、>>134 は勘違いをしている確立が高いと。 何をしたいかがわからないと答えようがないなぁ
153 名前:132 mailto:sage [04/12/21 22:13:37] 皆さん、すいません。 IDを渡せばいいってのは分かるんですが、Window Mediatorデータソースから 直接getWindowForResourceの引数に使う値を取り出したいのです。
154 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:31:14] データソースってとこ良く分からんがWindow MediatorはXPCOMをインスタンス化しただけだから引数に使う値はない。 #ウインドウ一覧が欲しいという事なのかな #もうちょっと具体的にお願いします。
155 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:37:47] >>154 >>139-142
156 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:38:46] >>154 xulplanet.com/references/xpcomref/comps/c_rdfdatasource1namewindowmediator.html このコンポーネントを使用してるのですが >ウインドウ一覧が欲しいという事なのかな はい、とりあえずそうです。
157 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:40:27] んでID付けたくない理由は?
158 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:44:42] というかRDFの奴が一通り使えるしRDFについて学ぶのが良いと思う。 でも単純なリストではないって事???
159 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:45:27] データソースから取り出すには、コンテナを初期化して、 Enumeratorを回すのが定石。 でも、ウィンドウのリストがほしいだけだったら、mediatorでも出来る上に どっちみちSimpleEnumeratorの説明をしなくちゃならんから、 遠回りしてるだけなんだよ。 だから、情報を小出しにすんな、って言われてるでしょ?
160 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:47:12] >>156 頼むから、getEnumeratorを使ってくれ。 RDFは、もうちょっと知識が身に付いたあとでも遅くないから。
161 名前:デフォルトの名無しさん mailto:sage [04/12/21 22:50:10] >>115-116 実は2分で結論が出てることを、ここまで引っ張ってきてるわけだ…
162 名前:132 mailto:sage [04/12/21 23:06:26] いや、単純にウィンドウのリストを取得するだけなら分かりますし、できるんですが。 ていうか、説明が難しい上にスレも荒れるので、自力で解決したいと思います・・ 今後自分に対するレスはもう不要です、いやほんとに。
163 名前:デフォルトの名無しさん mailto:sage [04/12/21 23:10:29] やり方 wiki.fdiary.net/xul/ に書いてきた
164 名前:デフォルトの名無しさん mailto:sage [04/12/23 11:24:59] ところで、>>132 さんが使おうとしているgetWindowForResourceって使えます? Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getWindowForResource("window-1"); エラー: Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getWindowForResource is not a function
165 名前:デフォルトの名無しさん mailto:sage [04/12/23 13:04:35] >>164 >>66 www.xulplanet.com/references/xpcomref/ifaces/nsIWindowDataSource.html
166 名前:デフォルトの名無しさん mailto:sage [04/12/24 05:27:02] 厨房もじらーさんってまだ生きてるのかな?(・∀・)
167 名前:デフォルトの名無しさん mailto:sage [04/12/24 12:41:37] >>166 メールでも送ってみたら?
168 名前:デフォルトの名無しさん mailto:sage [04/12/26 21:44:00] こんな事できたのか。。おれてきメモ。 var docroot = window.content.document.documentElement docroot.innerHTML += '<p id="hoge">hoge</p>' window.content.document.getElementById("hoge") //もうひとつ var doc = document.implementation.createDocument("","html",null) var range = doc.createRange(); range.selectNodeContents(doc.documentElement); range.collapse(true); var cf = range.createContextualFragment(htmlcontent) doc.documentElement.appendChild(cf) var serializer = new XMLSerializer(); var xml = serializer.serializeToString(doc); これで、htmlも簡単にxmlに変換できるのね。
169 名前:デフォルトの名無しさん mailto:sage [04/12/31 12:46:05] テキストファイルの文字コードの自動認識する方法ってありますか?
170 名前:デフォルトの名無しさん mailto:sage [04/12/31 17:41:00] >>169 あるよ
171 名前:デフォルトの名無しさん mailto:sage [04/12/31 18:37:24] ウィンドウにフォーカスがあるか調べるメソッドかなんかあります?
172 名前:デフォルトの名無しさん mailto:sage [04/12/31 18:44:04] 自己解決しますた。
173 名前:デフォルトの名無しさん mailto:sage [04/12/31 19:04:51] >>170 どのようにすれば自動認識できますか?
174 名前:デフォルトの名無しさん mailto:sage [04/12/31 19:08:22] 自動認識はできないんじゃ? 確かflyson氏のページに日本語の文字コードを簡易的に識別する関数があったが…
175 名前:デフォルトの名無しさん mailto:sage [04/12/31 21:04:18] >>173 他のプログラム言語で書かれた判定式を移植 #Mozilla内部にもあるはずだけどJSからは使えないはず
176 名前:デフォルトの名無しさん mailto:sage [04/12/31 23:08:31] >>22 の拡張を入れたらフロントエンドからアンインストールしても「次回の起動時に削除されます」 とか書かれて再起動しても消えてくれない・・・・ とりあえず手動で消すにはどうしたらいいですかね
177 名前:デフォルトの名無しさん mailto:sage [04/12/31 23:13:22] プロセスが残ってない? Winならタスクマネージャで調べてみて。
178 名前:デフォルトの名無しさん mailto:sage [05/01/01 00:10:49] >>177 プロセスで殺しても無理でした。ついでにPCごと再起動しても無理です・・・
179 名前:デフォルトの名無しさん mailto:sage [05/01/01 00:14:28] extension.rdfあたりを手動でいじればいいんじゃ?
180 名前:デフォルトの名無しさん mailto:sage [05/01/02 05:37:34] nsIRequestObserverのonStopRequestで、statusCodeに2147500033という数値が返ってきました。 この数値の意味を知る方法はありますか?
181 名前:デフォルトの名無しさん mailto:sage [05/01/02 08:32:13] それは、NS_ERROR_NOT_IMPLEMENTEDだな。 idlでは定義されてるんだが、実装を書かないとそうなる。
182 名前:デフォルトの名無しさん mailto:sage [05/01/02 08:35:05] >>66 の例でいくと、「握手しようとしたら、空振り」エラーだ。
183 名前:デフォルトの名無しさん mailto:sage [05/01/02 10:14:40] 握手に失敗しても空振りとは言わんな むしろ空手形とかそんなんだろ
184 名前:デフォルトの名無しさん mailto:sage [05/01/02 22:29:41] 空手形もおかしい
185 名前:デフォルトの名無しさん mailto:sage [05/01/03 22:20:51] ページ読み込み完了時に処理させたいのですが、どのようにしたらいいでしょうか? mTabBox.addEventListener("load", test, true); 現在このようにやってますが、これでは早すぎます。
186 名前:デフォルトの名無しさん mailto:sage [05/01/03 22:29:54] >>185 mTabBox.addEventListener("load", test, false); でいかがでしょうか? (>>111-114 参照)
187 名前:デフォルトの名無しさん mailto:sage [05/01/03 22:33:01] >>186 ありがとうございます。 それも試しましたが、それだとうまく"完了時"に取得できないようです。 他の方法があればよいのですが・・・
188 名前:デフォルトの名無しさん mailto:sage [05/01/04 02:04:40] nsITreeViewを自分で実装したツリーで、setCellTextしてもすぐにはツリーセルのテキストが変わらず、 なぜかそのセルを選択状態にすると変更が反映されます。 これをどうにかすぐに反映させるようにできないでしょうか?
189 名前:188 mailto:sage [05/01/05 23:54:27] 自己解決というか実装の仕方を変えたので質問を取り下げます。
190 名前:デフォルトの名無しさん mailto:sage [05/01/08 12:16:32] firefoxの拡張機能で、インストール時に独自の設定ファイルを作る方法ってあります?
191 名前:デフォルトの名無しさん mailto:sage [05/01/08 13:19:32] デフォルト設定を*.jsで定義したいという話なら、 だとしたら、しかるべきパスにしかるべきファイルを置いて *.xpiに含めればいいと思う。
192 名前:190 mailto:sage [05/01/08 17:55:27] >>191 defaults/preferences/*.js ではなくて、独自の「ファイル」の方法ってことです。 で、さっき気が付いたんだが、 *.xpi の中に setting.xml とか置いておけば、インストール時に %ProfD%/extensions/{extension-uuid}/setting.xml に展開されるから独自の設定ファイルを置けることがわかったので、解決しました。 が、これだとアップデート時にもsetting.xmlが上書きされてしまうという問題点がうまれてしまいました。
193 名前:デフォルトの名無しさん mailto:sage [05/01/08 18:36:29] >>192 > defaults/preferences/*.js ではなくて、独自の「ファイル」の方法ってことです。 そういうポリシーになってないと思う。
194 名前:デフォルトの名無しさん mailto:sage [05/01/08 19:17:09] >>192 xpiにあらかじめ設定ファイルを含めるのではなく、初回起動時に生成できればいいよね。 アップデート時は設定ファイルの存在を判定して、あればそのまま使うように。
195 名前:デフォルトの名無しさん mailto:sage [05/01/08 20:02:27] nsIPrefServiceに任意のファイルに設定を出力する機能があったと思うけど、 これは特定のブランチ以下だけを吐くとかできるのかな? 無理なら、TbEみたいに自力で実装するしかないかと。
196 名前:190 mailto:sage [05/01/09 12:06:31] やっぱり起動するときに、設定ファイルを捜したり作ったりする処理が必要なのか…。 皆さん、ありがとうございました。
197 名前:デフォルトの名無しさん mailto:sage [05/01/12 02:03:26] Mozillaのインクルードディレクトリ、 あちこちに散らばってるのですが全部手動で指定するのはダルイです。 皆さんどうやって対応しているのですか? #include "xpcom/xxxx.h" みたいにしてます?
198 名前:デフォルトの名無しさん mailto:sage [05/01/12 02:19:51] 拡張の多言語版の配布方法で困っています。 ある拡張の公式なバージョン(例えばen-USとja-JP)とは別にローカライズ版(例えばde-DE)が存在するとき、 ローカライズ版をインストールしたドイツ人のユーザが拡張の更新ボタンを使って公式バージョンの最新版へ アップデートすると、ロケールに食い違いが生じて赤字のXULエラーが出てしまうという問題があるようです。 このような場合、ローカライズ版を一度インストールした人は今後ずっとローカライズ版がアップデートされるのを 待つように注意を促すしかないのでしょうか?
199 名前:デフォルトの名無しさん mailto:sage [05/01/12 03:13:45] それしかないと思う。現状のExtensionManagerでは対策のしようがないので。 あと、ローカライズ版作成者の人に ローカライズ版専用の自前の更新情報を提供してくれるよう 協力を呼びかけるくらいだろうか。
200 名前:デフォルトの名無しさん mailto:sage [05/01/12 03:28:50] ありがとうございます。やはりそうですか…。 ローカライズ版作者にupdate.rdfを作ってもらうという方向でいきます。 しかし不要なトラブルを避けるためにいっそ自分で全ロケールを管理した方がマシのような気もしてきました。
201 名前:デフォルトの名無しさん mailto:sage [05/01/12 12:42:06] それが妥当だと思うなあ。 > 自分で全部管理 手数は増えるけど。UNIXのソフトは普通そうだよね。 リリースが近くなったらアナウンスして翻訳してもらって。