1 名前:デフォルトの名無しさん mailto:sage [04/12/05 00:09:18] オラ拡張作る。 前スレ Mozillaでプログラミング(XUL) pc5.2ch.net/test/read.cgi/tech/1019704370/
82 名前:デフォルトの名無しさん mailto:sage [04/12/11 14:32:38] >>81 そうそう。動的なツリーを作る場合の定石。
83 名前:デフォルトの名無しさん mailto:sage [04/12/11 14:33:59] 要素の入れ替わりが一度でも起こるんならappendChild, removeChildなんてめんどくさくてやってられん。
84 名前:デフォルトの名無しさん mailto:sage [04/12/11 14:48:55] >>82 おお、そうなんですか。ではその方法で行こうと思います。
85 名前:デフォルトの名無しさん mailto:sage [04/12/12 15:03:53] binaryStreamをつかって読み書きしたいのですが ファイルをバイナリで読み込む方法はわかったけど、 nsILocalFileをつかわずにpythonでいうStringIOのような ものを使うにはどうすればいい? 下のようにすれば、できるかと思ったけど。 nsISimpleStreamListener.init(outputStream,observer) outputStream.write("hoge",4) とすると、かならず固まるか、落ちてしまいます。 正しい使い方を、おしえてください;
86 名前:デフォルトの名無しさん mailto:sage [04/12/12 15:41:35] type="checkbox"にしたtoolbarbuttonやmenuitemで、oncommand時のcheckedプロパティが MozillaとFirefoxとで逆のようです。 現状ではしかたなくnsPreferencesからapp.idを取得してFirefoxの場合は…としてますが、 他にうまい解決方法はありませんか? そもそもなぜFirefoxはcheckedが逆になってしまうのか謎。 サンプルコード <toolbarbutton type="checkbox" oncommand="alert(this.checked);" /> こちらは問題無し <checkbox oncommand="alert(this.checked);" />
87 名前:デフォルトの名無しさん mailto:sage [04/12/12 16:55:10] >>86 CSSが正しくプロパティを解釈出来てるんなら、 少なくともアトリビュートは正確、ってことになる。 alert((this.getAttribute("checked") == "true")? "Checked": "Not checked."); でどうだろうか?
88 名前:デフォルトの名無しさん mailto:sage [04/12/12 17:20:53] >>87 それでも結果は同じでした。
89 名前:デフォルトの名無しさん mailto:sage [04/12/12 17:24:02] oncommandとチェックの発生順序かな 是はどうしようもないかと
90 名前:デフォルトの名無しさん mailto:sage [04/12/12 17:34:31] oncommand="setTimeout(function(){alert(event.originalTarget.checked);}, 0);" としたらうまくいきました。 Firefoxではoncommandよりもcheckedが先に変更されるということか。
91 名前:デフォルトの名無しさん mailto:sage [04/12/12 17:38:23] >>90 そうみたいだね。 DOM的に言えば、Semonkeyの方が正しい挙動だと思う。
92 名前:デフォルトの名無しさん mailto:sage [04/12/12 19:51:56] BookmarkなどのRDFデータソースってどこに置かれてるんでしょう?
93 名前:デフォルトの名無しさん mailto:sage [04/12/12 19:53:00] htmlに変換されて保存されてる 読み出すときはhtmlからrdfに変換されてる
94 名前:デフォルトの名無しさん [04/12/12 22:37:51] それにしてもブックマークのHTMLってなんであんなに汚いんだろう
95 名前:デフォルトの名無しさん mailto:sage [04/12/12 22:38:37] >>93 サンクス
96 名前:デフォルトの名無しさん mailto:sage [04/12/12 23:18:34] >>94 パーサが古いからだろうな。 どう考えてもソース公開以前のコードをそのまま使ってる。
97 名前:デフォルトの名無しさん mailto:sage [04/12/15 10:38:15] Firefoxのタブのコンテキストメニューのオーバーレイってどんな感じでやればいいんでしょう?
98 名前:デフォルトの名無しさん mailto:sage [04/12/15 11:31:35] スクリプトで動的に編集するしかないんじゃない?
99 名前:デフォルトの名無しさん mailto:sage [04/12/15 14:50:31] mTabContainerのonclickを上書きするとか? 行儀悪・・・
100 名前:デフォルトの名無しさん mailto:sage [04/12/15 17:28:17] >>99 popupshowingかpopupshownにイベントリスナーを追加したら?
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 の例でいくと、「握手しようとしたら、空振り」エラーだ。