[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 20:59 / Filesize : 246 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Mozillaでプログラミング(XUL) その2



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の例でいくと、「握手しようとしたら、空振り」エラーだ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef