Mozillaでプログラミング(XUL) その2at TECH
Mozillaでプログラミング(XUL) その2 - 暇つぶし2ch175:デフォルトの名無しさん
04/12/31 21:04:18
>>173
他のプログラム言語で書かれた判定式を移植
#Mozilla内部にもあるはずだけどJSからは使えないはず

176:デフォルトの名無しさん
04/12/31 23:08:31
>>22の拡張を入れたらフロントエンドからアンインストールしても「次回の起動時に削除されます」
とか書かれて再起動しても消えてくれない・・・・
とりあえず手動で消すにはどうしたらいいですかね

177:デフォルトの名無しさん
04/12/31 23:13:22
プロセスが残ってない?
Winならタスクマネージャで調べてみて。

178:デフォルトの名無しさん
05/01/01 00:10:49
>>177
プロセスで殺しても無理でした。ついでにPCごと再起動しても無理です・・・

179:デフォルトの名無しさん
05/01/01 00:14:28
extension.rdfあたりを手動でいじればいいんじゃ?

180:デフォルトの名無しさん
05/01/02 05:37:34
nsIRequestObserverのonStopRequestで、statusCodeに2147500033という数値が返ってきました。
この数値の意味を知る方法はありますか?

181:デフォルトの名無しさん
05/01/02 08:32:13
それは、NS_ERROR_NOT_IMPLEMENTEDだな。
idlでは定義されてるんだが、実装を書かないとそうなる。

182:デフォルトの名無しさん
05/01/02 08:35:05
>>66の例でいくと、「握手しようとしたら、空振り」エラーだ。

183:デフォルトの名無しさん
05/01/02 10:14:40
握手に失敗しても空振りとは言わんな
むしろ空手形とかそんなんだろ

184:デフォルトの名無しさん
05/01/02 22:29:41
空手形もおかしい

185:デフォルトの名無しさん
05/01/03 22:20:51
ページ読み込み完了時に処理させたいのですが、どのようにしたらいいでしょうか?
mTabBox.addEventListener("load", test, true);
現在このようにやってますが、これでは早すぎます。

186:デフォルトの名無しさん
05/01/03 22:29:54
>>185
mTabBox.addEventListener("load", test, false);
でいかがでしょうか? (>>111-114 参照)

187:デフォルトの名無しさん
05/01/03 22:33:01
>>186
ありがとうございます。
それも試しましたが、それだとうまく"完了時"に取得できないようです。
他の方法があればよいのですが・・・

188:デフォルトの名無しさん
05/01/04 02:04:40
nsITreeViewを自分で実装したツリーで、setCellTextしてもすぐにはツリーセルのテキストが変わらず、
なぜかそのセルを選択状態にすると変更が反映されます。
これをどうにかすぐに反映させるようにできないでしょうか?

189:188
05/01/05 23:54:27
自己解決というか実装の仕方を変えたので質問を取り下げます。

190:デフォルトの名無しさん
05/01/08 12:16:32
firefoxの拡張機能で、インストール時に独自の設定ファイルを作る方法ってあります?

191:デフォルトの名無しさん
05/01/08 13:19:32
デフォルト設定を*.jsで定義したいという話なら、
だとしたら、しかるべきパスにしかるべきファイルを置いて
*.xpiに含めればいいと思う。

192:190
05/01/08 17:55:27
>>191
defaults/preferences/*.js ではなくて、独自の「ファイル」の方法ってことです。

で、さっき気が付いたんだが、 *.xpi の中に setting.xml とか置いておけば、インストール時に
%ProfD%/extensions/{extension-uuid}/setting.xml
に展開されるから独自の設定ファイルを置けることがわかったので、解決しました。

が、これだとアップデート時にもsetting.xmlが上書きされてしまうという問題点がうまれてしまいました。


193:デフォルトの名無しさん
05/01/08 18:36:29
>>192
> defaults/preferences/*.js ではなくて、独自の「ファイル」の方法ってことです。

そういうポリシーになってないと思う。


194:デフォルトの名無しさん
05/01/08 19:17:09
>>192
xpiにあらかじめ設定ファイルを含めるのではなく、初回起動時に生成できればいいよね。
アップデート時は設定ファイルの存在を判定して、あればそのまま使うように。

195:デフォルトの名無しさん
05/01/08 20:02:27
nsIPrefServiceに任意のファイルに設定を出力する機能があったと思うけど、
これは特定のブランチ以下だけを吐くとかできるのかな?
無理なら、TbEみたいに自力で実装するしかないかと。


196:190
05/01/09 12:06:31
やっぱり起動するときに、設定ファイルを捜したり作ったりする処理が必要なのか…。
皆さん、ありがとうございました。

197:デフォルトの名無しさん
05/01/12 02:03:26
Mozillaのインクルードディレクトリ、
あちこちに散らばってるのですが全部手動で指定するのはダルイです。
皆さんどうやって対応しているのですか?

#include "xpcom/xxxx.h"
みたいにしてます?

198:デフォルトの名無しさん
05/01/12 02:19:51
拡張の多言語版の配布方法で困っています。

ある拡張の公式なバージョン(例えばen-USとja-JP)とは別にローカライズ版(例えばde-DE)が存在するとき、
ローカライズ版をインストールしたドイツ人のユーザが拡張の更新ボタンを使って公式バージョンの最新版へ
アップデートすると、ロケールに食い違いが生じて赤字のXULエラーが出てしまうという問題があるようです。

このような場合、ローカライズ版を一度インストールした人は今後ずっとローカライズ版がアップデートされるのを
待つように注意を促すしかないのでしょうか?

199:デフォルトの名無しさん
05/01/12 03:13:45
それしかないと思う。現状のExtensionManagerでは対策のしようがないので。

あと、ローカライズ版作成者の人に
ローカライズ版専用の自前の更新情報を提供してくれるよう
協力を呼びかけるくらいだろうか。


200:デフォルトの名無しさん
05/01/12 03:28:50
ありがとうございます。やはりそうですか…。
ローカライズ版作者にupdate.rdfを作ってもらうという方向でいきます。
しかし不要なトラブルを避けるためにいっそ自分で全ロケールを管理した方がマシのような気もしてきました。

201:デフォルトの名無しさん
05/01/12 12:42:06
それが妥当だと思うなあ。 > 自分で全部管理
手数は増えるけど。UNIXのソフトは普通そうだよね。
リリースが近くなったらアナウンスして翻訳してもらって。



202:デフォルトの名無しさん
05/01/12 20:22:28
XULのwikiに拡張の説明のローカライズの仕方書いてきた。(って言ってもコピペだけど)
#んで書いてみて、何か物凄い面倒なことしてるな>俺って思ったのは気のせい。

>>200
全部自分で管理、新たな文が必要になった所は英語で補完しとけば良いと思う。

203:デフォルトの名無しさん
05/01/17 06:28:07
XUL開発のために今までずっとnglayout.debug.disable_xul_cacheをtrueにしてたけど、
久々にfalseにしたらFirefoxが驚くほど軽快に。デバッグするときと普段とでいちいち値を
切り替えるのは面倒だけど。

204:デフォルトの名無しさん
05/01/19 00:13:03
HTMLの文字列をDOM treeに変換したいときは、どうするのがベストでしょうか。
空のHTMLDocumentを作って、innerHTMLに入れるのかと
思ったんだけど、document.implementation.createDocumentで作られるのは
XMLDocument…。

205:デフォルトの名無しさん
05/01/19 07:27:41
DOMParserは?

206:デフォルトの名無しさん
05/01/19 14:06:53
>>205
DOMParserはXMLのパースしかできなかったと思われ。

207:デフォルトの名無しさん
05/01/19 19:24:47
URLリンク(firefox.geckodev.org)
のHello worldチュートリアルを見てコンテキストメニューとツールのとこに
メニューを追加する方法はわかったのですが、
タブの右クリックメニューのところにはどうやって追加するのでしょうか?
難しいんですか?

208:デフォルトの名無しさん
05/01/19 19:34:15
>>207
簡単ですよ

209:207
05/01/20 20:24:58
>>208
toolkit.jarを書き変えれば確かに簡単だけど、
自分の拡張からだとXBLとかいうのを書くみたいでちょっと初心者には無理ですね。
来年がんばります。

210:208
05/01/20 20:42:48
>>209
勘違い?
#オーバーレイを使えば肝胆なのに

211:デフォルトの名無しさん
05/01/21 01:00:23
確かにタブのコンテクストメニューってidで一意に定められているわけじゃなく、
XBLで各タブごとに存在するという感じだから、例えばcontentAreaContextMenuにオーバーレイ
するみたいに一筋縄ではいかない気がするな。

212:208
05/01/21 18:34:13
よく調べないで書き込んでスマソ。
#でもXBLもそんなに難しくない気がするけど…

213:デフォルトの名無しさん
05/01/30 19:30:13
>>211
XBLはCSSに入ってるから、オーバーレイっていうよりカスケーディングだな。
CSSはオーバーレイされてるんだけどね。
根本的な考え方は一緒、というかむしろカスケーディングの方が
なじみがあるだろう。

214:デフォルトの名無しさん
05/02/02 03:47:44
URLリンク(xul-app.hp.infoseek.co.jp)
ここの6.7.2のファイルブラウザーが何も表示されませんが、何か間違っていますでしょうか?
treecolsが無いのはおかしいと思い追加してみたが、それでもダメでした。

215:デフォルトの名無しさん
05/02/02 19:19:12
そのサンプルが古いからです。
>2002 年 3 月 16 日記。このページの更新は、もはや、ありません。
>後を継いで頂ける方がありましたら、ここでのこれまでの翻訳を、ご自分のサイトに移して、このサイトの翻訳が停止した後の差分を訳すなり、一から訳し直すなりの措置をお取り頂ければ幸いです。
>私の連絡は不要です。このページは、4 月末までに廃止されます。

216:デフォルトの名無しさん
05/02/03 02:40:57
現在の仕様では、旧treeウィジェットはなくなって、
その資料でoutlinerとなっているものがそのまま名称変更されて
treeとして実装されています。


217:デフォルトの名無しさん
05/02/03 21:56:19
>>215-216
ありがとうございました。
もう一度考えてきます。

218:デフォルトの名無しさん
05/02/07 20:16:11
これ結構楽しいかも。
JSDoc
URLリンク(jsdoc.sourceforge.net)

219:デフォルトの名無しさん
05/02/07 21:48:17
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Perl

220:デフォルトの名無しさん
05/02/07 22:06:13
>>219
Python と HSP を忘れてるぞ。

……って Ruby スレじゃないじゃん。ここ。

221:デフォルトの名無しさん
05/02/10 07:31:13
すいません、RDFとTemplateに絡んで質問なんですが、

<rdf:Description rdf:about="...">
<my:property rdf:parseType="Literal"><html:em>はろー</html:em>ぐっど<html:br />もーにんぐ</my:property>
</rdf:Description>

というふうにparseType="Literal"である目的語の値をそのままテンプレートに使うのにはどうしたらいいんでしょうか。
ためしに以下のようにやってみましたが、(&my;は名前空間URIに展開される)

<rule>
<conditions>
...
<triple subject="..." predicate="&my;property" object="?object" />
</conditions>
<action>
<html:p uri="..."><textnode value="?object" /></html:p>
</action>
</rule>

以下のような結果になってしまいました。

<html:p>rdf:#$R1O4A1</html:p>

ほしい結果は以下のとおりです。

<html:p><html:em>はろー</html:em>ぐっど<html:br />もーにんぐ</html:p>

何とかテンプレート関連要素を使ってやる方法はないのでしょうか?
それともこういう場合はスクリプトで処理していかなくてはならないのでしょうか?
# 関係ないけどXUL/Migemoはすごいですね。
# "parseType"で検索したら「パース型」まで引っかかりましたよ。

222:デフォルトの名無しさん
05/02/11 08:16:38
sidebarBox = document.getElementById("sidebar-box");
みたいな感じでGUIの部品への参照を取得してるみたいなのですが
引数として与えられる文字列と取得できる部品の対応表とメンバ一覧みたいのはありますか?

223:デフォルトの名無しさん
05/02/11 11:07:44
>>222
domi

224:デフォルトの名無しさん
05/02/12 15:54:12
>>221
> URLリンク(lxr.mozilla.org)
>
> This code is based on the final W3C Recommendation,
> URLリンク(www.w3.org)

moz の実装してるRDFの仕様は少し古いので

> 2) We don't support the `parseType' attribute on the Description
> tag; therefore, it is impossible to "inline" raw XML in this
> implemenation.

perseType="Leteral" 属性は使えない、XML 断片を含ませることができない。
だそうだけど...何か方法あるのかな。

225:デフォルトの名無しさん
05/02/12 20:36:58
まずはbugzillaでvoteするべし

226:221
05/02/16 01:52:59
>>224
おおっ、ありがと。ってサポートされてないのね。残念。
仕方ないからテンプレート使わず単なるXMLとみなして
DOMでひとつずつ取り出すかXSLTで一気に変換するかします。

ちなみにBugzillaで探したら

Bug 33197 - no support for parseType="Resource|Literal"
URLリンク(bugzilla.mozilla.org)

RESOLVED/FIXEDになってる!?
どうやらNC:parseType (意味的にはrdf:datatypeに相当?)が実装されたときに
FIXEDにされたらしいですが……どうなってるんでしょ?

227:デフォルトの名無しさん
05/02/16 10:55:42
>>226
Bug 33197 の修正元
Bug 118865 - Asserting an rdf int literal writes malformed xml
URLリンク(bugzilla.mozilla.org)
のパッチ
URLリンク(bugzilla.mozilla.org)
をみても、NC:parseType="Interger" と NC:parseType="Date"
しか実装されてないように見える。Bug 33197 はきちんと直ってないんじゃないかなぁ。

テンプレートじゃなくてスクリプトで、nsIRDFService.GetLiteral 使う場合は
できるのかも。試してないからわからんけど。

228:デフォルトの名無しさん
05/02/20 11:14:04
contents.rdfが廃止
URLリンク(slashdot.jp)

229:デフォルトの名無しさん
05/02/20 22:01:54
どういった利点が?

230:デフォルトの名無しさん
05/02/20 22:37:20
簡単に拡張を作成できるようにしました。
URLリンク(nazodane.hp.infoseek.co.jp)
ツール>拡張の作成で作成できます。
まだあまりテストしてなかったり、ロケールがen-USのみ固定だったりするので人柱募集。

231:デフォルトの名無しさん
05/02/20 23:29:18
>>230
GJ!
これで生成できるGUIDって正式なやつなんでしょうか?


232:デフォルトの名無しさん
05/02/21 09:24:59
RDFデータソースの操作で参考になる拡張は何ですか?

233:デフォルトの名無しさん
05/02/21 16:36:31
>>231
guidのwindowsでの正式な出し方はadvapi32.dllを使うのでどうしようもありません。
またunixではランダムデバイスを使っているようです。

ようはランダムであれば良い訳で別にMath.randomでも問題なさげと判断しました。(内部処理までは確認してません。)

234:デフォルトの名無しさん
05/02/21 19:47:39
>>233
でも、なるべく衝突しないようにしなきゃいけないわけで。

235:デフォルトの名無しさん
05/02/21 20:08:03
GUIDは全部をランダムに取るわけじゃないよ。
それなりに人によって使う領域が違ってくるように考えられている。
計算の仕方というのがあるのできちんとやるように。


236:デフォルトの名無しさん
05/02/21 20:25:31
あーデバイスから求めてる訳か。
JSの実装がどうなってるか確認してみます。

237:デフォルトの名無しさん
05/02/21 20:26:21
>>235
角度とか?

つか、偉そうなこと言うんだったらもうちっと具体的なこと言えばいいのに(笑)

238:デフォルトの名無しさん
05/02/21 20:39:20
ダメっぽいな…
XPCOMあさってみます。

239:デフォルトの名無しさん
05/02/21 20:45:06
crypto.random();が実装されてないorz

240:デフォルトの名無しさん
05/02/21 20:53:08
>>237
DCE 1.1 RPC Specificationを読め。


241:デフォルトの名無しさん
05/02/21 21:06:11
uuid=guidでいいんだよね
URLリンク(lxr.mozilla.org)
是見るとやっぱり時間で求めてるorz

他の所も
>"uuid" + (new Date()).getTime();
な感じで無理っぽいなorz

242:デフォルトの名無しさん
05/02/21 21:26:29
>>240
uuidって仕様あったんだ
某所で聞いた時誰も答えてくれなかったorz

243:デフォルトの名無しさん
05/02/22 00:04:37
URLリンク(nazodane.hp.infoseek.co.jp)

GUIDを修正してみた。
ただしvbs関係でエラーが出たりウイルスチェッカーが引っかかったりする可能性大。
Cドライブ以外にプロファイルがある時は上手く動作しない。

244:DCE
05/02/23 00:21:46
URLリンク(www.mozilla-japan.org)
uuidgen / guidgen で調べろ。

245:243
05/02/24 16:45:55
添付フォルダを使うようにしました。
これでwindows上では問題なし。

>>244
で?

246:デフォルトの名無しさん
05/02/24 17:30:12
>>244
そのツールって内部から呼べて、さらに値返ってくるの?ってことでしょ

>>245
手動の計算方法は*BSDのソース見たときに載ってた気がする
まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
あれって確かMACアドレス取ってるんだっけ?

# Windows系だけでOKなら、現行の仕様で問題無さそうだけど

247:デフォルトの名無しさん
05/02/24 17:35:59
windowsではvbsでScriptlet.Typelibを使うようにしたので問題ないです。
linuxでは/dev/urandomや/dev/randomを読み込むだけでよさげだけど環境が無いので対応は後回し。

248:デフォルトの名無しさん
05/02/24 17:52:37
>>246
> 手動の計算方法は*BSDのソース見たときに載ってた気がする
> まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
> あれって確かMACアドレス取ってるんだっけ?

そう。DCEのSpecの"UUID Format"ってとこに書いてある。
要するにMACアドレスが(建前としては)一意性を保証されてるってことと
時刻を利用して理論的には一意な数値を叩き出す。
MACアドレスが尽きたらどうするんだろうというのは昔から謎。


249:デフォルトの名無しさん
05/02/24 17:54:16
xul+javascriptでデータベースアプリケーションは作れマツか?
その1は落ちていて読めていません。

250:デフォルトの名無しさん
05/02/24 18:32:10
>>249
とりあえずその1
URLリンク(makimo.to)

データアプリケーションは作れなくも無いけど、読み込みスピードの問題が発生してくるかも。

251:デフォルトの名無しさん
05/02/24 18:48:53
こんなのあったりもします
URLリンク(jsdb.sourceforge.net)

252:sage
05/02/25 05:54:21
> 250, 251
ありがとうございます。
既存のDBを使いたかったら、PHPとかサーバサイドでその処理を行い、
xul+jsはフロントエンドとして使う、ということですね。
flexとかと同じですね。

253:252
05/02/25 05:55:15
sageのいれどころ間違いました。すいません。

254:デフォルトの名無しさん
05/02/25 08:59:39
一瞬ThunderbirdにSageのXPI突っ込んじゃったのかと思っちゃったじゃないか

255:デフォルトの名無しさん
05/03/03 08:04:06
ナイトリービルドではXUL(JavaScript)の仕様もあちこち変わってきているように見受けられますが、
そういった細かい仕様変更やバグフィックスなどに関する情報はどこで手に入れることができますでしょうか?

256:デフォルトの名無しさん
05/03/03 17:09:38
>>255
mozillaのwikiに載ってるよ。

ちなみに>>228はxulrunnerでしか関係ないと思われ

257:デフォルトの名無しさん
05/03/03 19:55:19
xulrunner結構いいけど是と言って作る物が思いつかないorz

258:デフォルトの名無しさん
05/03/03 21:16:35
サイドバーにテキストボックスを1つ配置したとして、
その内容(value)を閉じても保持するにはどういう方法がありますか?
要はスタティックな変数が確保できればいいんですけど、

function hoge(){};
hoge.prototype = {
 load: function(){
  var hogeside = document.getElementById("hogeSidebar");
  hogeside.value = ++hoge.prototype.count;
 },
 count:0
}
var hogehoge = new hoge();

例えば上のようなコードで、サイドバーを開く度にcountをインクリメントして表示だと、
どういう風に書けばいいでしょうか。
(上の例では毎回1が表示される)

259:258
05/03/03 21:21:48
ああ何か違う_no
countを~じゃなくて、テキストボックスのvalueをインクリメントして~、です

260:デフォルトの名無しさん
05/03/03 21:28:25
preferencesに保持するのが一般的と思われ

261:260
05/03/03 21:30:20
URLリンク(xulplanet.com)

262:258
05/03/03 21:49:32
>>260-261
ありがとうございます。
ただ、例なので単純に数値のインクリメントにしてみたんですけど、
実際はテキストボックスでなくツリーで、
ツリー内の状態を保持しようと考えてます。
その場合もやっぱりpreferencesしか手はないでしょうか?

263:デフォルトの名無しさん
05/03/03 21:56:33
>>262
それだったらrdf

264:デフォルトの名無しさん
05/03/03 22:50:03
URLリンク(xulplanet.com)

265:デフォルトの名無しさん
05/03/05 00:16:24
斜め読みで適当に書いてるんで、間違ってても知りませんよ。
URLリンク(piro.sakura.ne.jp)


266:デフォルトの名無しさん
05/03/05 01:12:36
>>265
乙です。
chrome.manifestはinstalled-chrome.txtの記述にさらにcontents.rdfのoverlayの記述を加えたような感じですね。
XMLではないので読み書きしやすいので、こちらの方がよさげな気がします。
ただ、今までinstall.rdfで登録していた拡張の名前やバージョン、アップデートURLなどの情報はどうなるのだろうか。

267:デフォルトの名無しさん
05/03/05 01:55:04
ほんとだね。どうなるんだろ

268:デフォルトの名無しさん
05/03/05 12:18:13
>>266
いや変わらないでしょ
>install.rdfと
って所はただのミスでしょ
一箇所にまとめるのもいいと思うしスピードを上げるのもいいけどRDFの採用を減らすのはどうかと思うな…

269:デフォルトの名無しさん
05/03/05 13:28:13
んで疑問なのはmanifestの置く場所がxulrunner(というかアプリケーション側)と違う事。(アプリケーション側はchromeフォルダ内)

270:デフォルトの名無しさん
05/03/07 20:05:14
windowsでfirefoxのtrunkを使っているのですが
window.open("chrome://*",null,"chrome,alwaysRaised");
が聞かない様な気がするのですがどうすればいいのでしょうか?

271:デフォルトの名無しさん
05/03/07 20:55:51
便利でメジャーなプラグインを自動で検索してインストールするプラグインキボン

272:270
05/03/07 21:08:00
親のzLevelが設定されてないとだめなのかなぁ…

>>271
窓の社(not 杜)の中の人乙

273:デフォルトの名無しさん
05/03/07 21:21:32
ウィンドウの内部名はなんでnullになってるの?

274:デフォルトの名無しさん
05/03/07 21:28:45
>>273
'_blank'になおしますた。
それと上手くいったけどtopmostっていってもfirefox内だけなのねorz

275:デフォルトの名無しさん
05/03/08 00:14:10
システムに対してtopmostにできるとフィッシングに使う馬鹿が出るから仕方ない
と言っても特権持ったXULアプリならできても良さそうなもんだがな

276:デフォルトの名無しさん
05/03/08 01:32:07
Win32API呼ぶ方法ってありますか?

277:デフォルトの名無しさん
05/03/08 23:47:16
rundll32.exe使うとかどうよ

278:デフォルトの名無しさん
05/03/09 22:15:18
そんなんじゃIEには勝てないな

279:デフォルトの名無しさん
05/03/09 22:32:56
>>278
ええ、確かにIE+ASP.NETとは比べ物になりませんよ
やりようによってはウイルスだってハードディスク丸ごとフォーマットだってできちゃうXULに勝ち目はありません。

280:デフォルトの名無しさん
05/03/10 16:41:17
nsIViewManagerでサムネイルが出力できるようになったのはいいんだけど(set MOZ_FORCE_PAINT_AFTER_ONLOAD=c:\tmp\test)、xpcom側から使えないのがなぁ…
是使えればもっと色々なことできそうなのに…
誰かパッチ書いてくれないかなぁ(他人任せ)

281:デフォルトの名無しさん
05/03/10 23:37:03
武熊をサムネイルで整理とかできたらおもしれえかもな。

282:デフォルトの名無しさん
05/03/13 08:09:28
ブラウザが持っているダイアログ(ブックマークに追加、など)を呼び出して、通常と違う動作をさせるにはどうしたらいいんでしょうか?
通常呼び出される場合には手を加えず、特殊な場合だけ動作を変えたいのです。

283:デフォルトの名無しさん
05/03/13 10:14:17
引数を渡してウィンドウを開く


284:デフォルトの名無しさん
05/03/13 11:11:35
>>282 <dialog id="****">を overley すれば?
overley の js で通常と特殊を振り分ければできるっしょ。

285:282
05/03/13 16:27:28
なるほど。ありがとうございます。

286:デフォルトの名無しさん
05/03/14 18:14:21
>>275
chrome内ならできるようにして欲しいなぁ。
でないとランチャーや時計みたいな小物アプリが…

287:デフォルトの名無しさん
05/03/14 18:49:13
Flasherって何?inIFlasher
ウンコモラッシャー!

288:デフォルトの名無しさん
05/03/15 11:48:20
>>287
inIだからDOMiの為の何か。

289:デフォルトの名無しさん
05/03/18 00:17:59
すいません。今、XULでMozillaのToolbarを作っています。

ツールバーでアイコンとアイコンの間に仕切り線を入れたいのですがどうしたらいいのでしょうか?

デフォルトであるブックマークのツールバーの「ホーム」と「ブックマーク」の間にある仕切り線みたいなのが良いです。
よろしくお願いします。

290:デフォルトの名無しさん
05/03/18 00:43:15
>>289
separatorかと思ったけど、
これだったらちょっと検索しただけで分かるよね
他の何かかな?

291:デフォルトの名無しさん
05/03/19 08:48:41
DOMインスペクタ使ってる?

292:デフォルトの名無しさん
05/03/19 23:33:07
ドロップダウンリスト関連の質問です。

リストのラベルをJavaScriptで作成した変数(配列変数)を使いたいんですか
どうすればいいんでしょうか。

具体的には以下の通りです。

293:291
05/03/19 23:33:51
<script type="application/x-javascript">
<![CDATA[
teArray = new Array();
n = 0;
while (n<5) {
teArray[n] = n + "番目";
n++;
}
]]>
</script>

<menulist>
<menupopup>
<menuitem label="≪teArray[1]を使いたい≫" oncommand="sk1()"/>
<menuitem label="≪teArray[2]を使いたい≫" oncommand="sk2()"/>
<menuitem label="≪teArray[3]を使いたい≫" oncommand="sk3()"/>
<menuitem label="≪teArray[4]を使いたい≫" oncommand="sk4()"/>
<menuitem label="≪teArray[5]を使いたい≫" oncommand="sk5()"/>
</menupopup>
</menulist>

294:デフォルトの名無しさん
05/03/19 23:46:18
>>293
menuitem自体を動的に挿入汁

295:291
05/03/19 23:51:29
>>294
それはどのように行えばよいのでしょうか?
具体的に、丁寧な説明をお願いします。

296:292
05/03/19 23:52:59
>>293
>>295
すいません。名前の欄を間違えました。「292」です。

297:デフォルトの名無しさん
05/03/19 23:54:54
もう少しjavascriptを勉強したら?

298:デフォルトの名無しさん
05/03/19 23:55:07
>>292
menupopupにID付けといて、
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
みたいにすればいいんじゃ?
ただしonloadなどで実行してね。

299:デフォルトの名無しさん
05/03/19 23:57:13
もっとも、俺なら294のように動的に要素を生成して挿入するね。

300:292
05/03/20 14:12:49
>>298
ありがとうございます。早速やってみたのですが・・・、クリックしてもリスト(アイテム)が出てきません。
以下のスクリプトで実行しました。どこに問題があるか教えていただけると幸いです。

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
title="XUL"
onload="ttt01()"
xmlns="URLリンク(www.mozilla.org)">
<script type="application/x-javascript">
<![CDATA[
function ttt01() {
teArray = new Array();
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
}
]]>
</script>
<menulist>
<menupopup id="mi">
</menupopup>
</menulist>
</window>

301:デフォルトの名無しさん
05/03/20 15:19:18
>>300
menupopupのchildNodesが見あたりませんが……それじゃ動くはずないって。

皆さんが言ってるのは、

<script type="application/x-javascript">
<![CDATA[
function ttt01() {
teArray = new Array();
var mi = document.getElementById("mi").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
}
]]>

<menulist>
<menupopup id="mi">
<menuitem oncommand="sk1()"/>
<menuitem oncommand="sk2()"/>
<menuitem oncommand="sk3()"/>
<menuitem oncommand="sk4()"/>
<menuitem oncommand="sk5()"/>
</menupopup>
</menulist>

とするか、


302:デフォルトの名無しさん
05/03/20 15:22:55
(続き)

<script type="application/x-javascript">
<![CDATA[
function ttt01() {
var menulist = document.getElementById("ml");
for(var n= = 1; n < 6; i++){
mpopup.appendItem(n + "番目").setAttribute("oncommand", "sk"+n+"()");
}
}
]]>

<menulist id="ml"/>

とするか、ってことです。


303:デフォルトの名無しさん
05/03/20 15:27:25
>302のコード間違えたorz

<script type="application/x-javascript">
<![CDATA[
function ttt01() {
var menulist = document.getElementById("ml");
for(var n= = 1; n < 6; i++){
menulist.appendItem(n + "番目").setAttribute("oncommand", "sk"+n+"()");
}
}
]]>

<menulist id="ml"/>

が正解。

とりあえずDOM(Document Object Model)の基本を勉強した方がいい気がする。
URLリンク(moz.skillup.jp)
URLリンク(www.mozilla.gr.jp)
URLリンク(www.parkcity.ne.jp)
このへんとかどうかな。

304:デフォルトの名無しさん
05/03/20 18:45:25
すいません、画像の整理がしやすいように、"今自分の指定した規則のファイル名"で、ファイル保存する拡張を作りたいのですが
contentAreaUtil.js内部の
saveURL()

saveInternal()
と関数を追っていったところ、その関数の最後の
var sniffer = new nsHeaderSniffer(aURL, foundHeaderInfo, data, aSkipPrompt);
の1行で躓いてしまいました、何方か、このクラスに関する資料や、(期待出来ないけど)saveInternal関数の詳細解説

ファイル保存時に、好きなファイル名を指定出来る方法等をご存じでしたら、お知恵をお願いいたします
単純に、aFileName引数に適当な名前を入れ込んでしまえば上手くいくと思ったら、綺麗に動いてくれなかった物で…
一応、作りかけ…、普通にファイル保存しか出来ません
URLリンク(www.geocities.co.jp)


305:デフォルトの名無しさん
05/03/20 20:44:41
「"今自分の指定した規則のファイル名"で、ファイル保存する」という意味がよくわからないけど、
そんな小難しいことやんなくても、nsIWebBrowserPersistのsaveURIで保存すればいいんじゃないの?
URLリンク(piro.sakura.ne.jp)

306:デフォルトの名無しさん
05/03/21 00:09:05
DOMインスペクタのようにノードを監視するにはどのようにすればよいでしょう?
DOMインスペクタのソースを一通り眺めてみたけど理解できずorz

307:デフォルトの名無しさん
05/03/21 04:13:03
>>306
DOM Inspectorのソースは見てないがMutation Events用のリスナを登録してみるのはどうだろう。
ただしまともに実装されているのかは知らないが。
Mutation Events not created or dispatched for XML document that is loaded into memory but not rendered in a window/frame
URLリンク(bugzilla.mozilla.org)

308:デフォルトの名無しさん
05/03/21 05:44:17
DOMAttrChange(だったっけ)はとりあえず使えてます

309:デフォルトの名無しさん
05/03/21 12:50:50
そもそもDOM Inspectorってどうやって監視してるんだ。

310:デフォルトの名無しさん
05/03/28 15:03:55
>>306,309
「調査対象ノードをマウスで選択します」ボタンの動作を見る限りでは、
予め対象のDOM Documentを格納しておいてボタンを押されたとき(監視開始時)に
対象ドキュメント.addEventListener("mousedown",リスナー,true);
として、リスナーでevent.targetとして対象ノードを取得しているようです。

参考資料
chrome://inspector/content/viewers/dom/dom.js
URLリンク(lxr.mozilla.org)
URLリンク(lxr.mozilla.org)

>>306 さんの仰る「ノードの監視」の意味がわからなで答えているので、主旨が違ってたらごめんなさい。

311:デフォルトの名無しさん
05/03/31 14:04:56
URLリンク(tinderbox.mozilla.org)
のWINNT 5.0 sweetlou Dep %のログのエラーの部分見てワロタ
>d:/builds/tinderbox/XR-Trunk/WINNT_5.0_Depend/mozilla//dist/bin/firefox.exe does not exist.
>Error: binary not found: firefox.exe
ってw

312:デフォルトの名無しさん
05/04/07 22:26:45
URLリンク(ryuzi.dyndns.org)
>Bug 281988 を修正したところ影響が大きく、いくつかの拡張機能が動作しなくなっている

313:デフォルトの名無しさん
05/04/07 23:32:16
変更内容がいまいちわからない。
具体例を挙げて説明キボンヌ。

314:デフォルトの名無しさん
05/04/08 00:12:19
window._contentが使えなくなったのかな?

315:デフォルトの名無しさん
05/04/08 01:18:56
そりゃ大変だ。

316:デフォルトの名無しさん
05/04/08 10:57:25
自分が気づいたものでは、gBrowser.contentDocument.defaultViewがnullになってる。
gBrowser.contentWindowやdocument.popupNode.ownerDocument.defaultViewは今までどおり使える。

オマケ
URLリンク(piro.sakura.ne.jp)


317:デフォルトの名無しさん
05/04/08 23:09:52
URLリンク(nyozlla.hp.infoseek.co.jp)

> Mozilla/Firefox のセキュリティ修正は IE のようなパッチ方式ではなく、
> 全体を丸ごと更新します。このため「セキュリティ修正のたびに数 MB も
> ダウンロードするのは、ダイアルアップ接続のユーザーには苦痛だ」とい
> う意見も多く、とくに Mozilla 1.7.6 => 1.7.7 と Firefox 1.0.2 => 1.0.3
> は日にちが近いこともあり、多くの苦情が寄せられました。
> そこで Mozilla Foundation は、今回の修正に "fix the root problem"
> (根本問題の修正)を追加して、製品寿命を長くする決断をしたもようで
> す。いきさつは adot's notblog* "another shot at 1.0.3"
> (URLリンク(weblogs.mozillazine.org)) 参照。
> しかし、この「根本問題の修正」はいわば「仕様上のぜい弱性の修正」で
> もあるため、一部の「拡張機能」が動作しなくなるなどのトレードオフが
> 生じています。


318:デフォルトの名無しさん
05/04/10 03:33:55

XULでポトペタ環境ってまだないの?そういうのがあると
手軽なGUI作成ツールになるんだけど

319:デフォルトの名無しさん
05/04/10 06:32:15
この辺のことか?
URLリンク(www.mozdev.org)

320:デフォルトの名無しさん
05/04/10 10:52:41
>>318
XULDでテスト中
chrome://xuld/content/visualformmaker/formmake.xul
ただしMozArtを元にしてるのでそっちの許可が下りない限りは(ry
#tree表示がないときついな

321:320
05/04/10 11:23:45
>>319
お、すげ…

322:デフォルトの名無しさん
05/04/10 12:41:42
>>319
まともに動くのが無い・・・orz

323:デフォルトの名無しさん
05/04/11 01:47:21
これってブラウザの外に窓開いて独立したアプリを作ることもできるの?

324:デフォルトの名無しさん
05/04/11 14:40:19
>>323
ブラウザ自体XUL+JavaScriptで記述されてますから。

325:デフォルトの名無しさん
05/04/11 15:18:16
XULRunnner がそれじゃない?
使ったことないから知らないけど。

326:デフォルトの名無しさん
05/04/11 16:54:56 BE:113346465-
>>323
XULRunner
URLリンク(ftp.mozilla.org)

327:デフォルトの名無しさん
05/04/11 22:44:25
URLリンク(baniisan.s12.xrea.com)
にあるやつでちょっといじってみるとか

328:デフォルトの名無しさん
05/04/11 23:52:09
>>323
できます。
Firefox内でも、「ブックマークの管理」ダイアログやDOMインスペクタ、
設定ダイアログ、拡張機能の管理ダイアログなどが
「ブラウザの外に窓開いて独立したアプリを作」った例と言えます。


329:デフォルトの名無しさん
05/04/12 00:04:05
-chrome引数付けて開けば単独で開けたはずだし

330:デフォルトの名無しさん
05/04/13 19:27:52
JSでもXPCOM作れるらしいけど実際使われてる拡張ほとんど見ない…
使いまわしだとかバージョンによるバッティングとかどんな感じになってるの?
URLリンク(nazodane.hp.infoseek.co.jp)

331:デフォルトの名無しさん
05/04/14 04:01:22
>>330
adblock とか livehttpheaders とか結構使ってるよ。

332:デフォルトの名無しさん
05/04/14 06:08:00
URLリンク(amb.vis.ne.jp)

作者オメ

333:デフォルトの名無しさん
05/04/14 16:42:08
>>331
あくまでもスキーマ登録とか処理介入じゃん。
xptを含むのってほとんど無い…

334:デフォルトの名無しさん
05/04/14 17:14:55
XULRunnerのWindows版ナイトリキター

335:デフォルトの名無しさん
05/04/16 16:54:27
+ テキスト
 ├テキスト
 └テキスト

ツリーのこの部分の幅を調節するにはどうすればよいのでしょうか?

336:デフォルトの名無しさん
05/04/16 16:59:20
::-moz-tree-indentation
URLリンク(xulplanet.com)

337:335
05/04/16 17:02:53
>>336
ありがとうございます。それは試しましたがtree-lineの上に上書き?されてしまいます。
出来ればtree-lineは残した状態で調節したいのです。

ちなみにこう書きました。
treechildren::-moz-tree-indentation {
width: 0px;
}

338:デフォルトの名無しさん
05/04/17 19:25:23
Fx1.0.3でfocusedWindow.__proto__.getSelection.call(focusedWindow)が使えなくなって
ちょっとした祭りになってるけど、そもそも__proto__ってどういう意味なの?

URLリンク(developer-test.mozilla.org)

339:デフォルトの名無しさん
05/04/17 19:29:38
>>338
prototype

340:デフォルトの名無しさん
05/04/19 12:17:05
リリースバージョンが上がるたびに互換性の問題で動かない拡張が山のように出るな

341:デフォルトの名無しさん
05/04/20 17:52:53
もっとライブラリ化しまくって中間ライブラリで対処できるようにするべきだと思うんだけど…

342:デフォルトの名無しさん
05/04/28 00:09:26
Firefox専用の拡張をMozillaで使えるように改造とかできますか?

343:デフォルトの名無しさん
05/04/28 00:14:35
場合による。

344:デフォルトの名無しさん
05/04/28 03:18:28
>>338
[[Prototype]]
URLリンク(www2u.biglobe.ne.jp)
prototype は [[Prototype]] じゃない。

345:デフォルトの名無しさん
05/04/28 18:17:20
URLリンク(www2u.biglobe.ne.jp)

346:デフォルトの名無しさん
05/04/28 23:02:01
Compound XML Document Editor: XUL Demo
URLリンク(dl.alphaworks.ibm.com)
Compound XML Document Editor
URLリンク(www.alphaworks.ibm.com)

from URLリンク(wiki.mozilla.org)

347:デフォルトの名無しさん
05/05/01 09:41:57
IDEっつか、CVSとかがついた統合環境にならんかなぁ

348:デフォルトの名無しさん
05/05/08 22:44:58
Arrayが拡張された
URLリンク(bugzilla.mozilla.org)

349:デフォルトの名無しさん
05/05/09 04:50:03
これってECMA Scriptの仕様にもある機能なの?

350:デフォルトの名無しさん
05/05/09 06:04:51
パッと見 Ruby っぽい?
Ruby にもメソッド新設されないかなぁ

351:デフォルトの名無しさん
05/05/09 16:24:58
>>>348-349
ECMA-262 3rd にはないよ。
concat, join, pop, push, reverse, shift, slice, sort, splice, unshift, length
これだけ。

独自拡張やるなら JavaScript 1.5 と ECMA Script 区別できるようにして欲しいなぁ
URLリンク(bugzilla.mozilla.org)

352:デフォルトの名無しさん
05/05/09 18:40:25
個人的には大文字を使うのが気持ち悪いんだが、
これもJAVA風味ってことかねぇ。

353:デフォルトの名無しさん
05/05/09 18:51:10
あー、でもよく考えたら、charAtとかもインターキャップか…

ECMAとの違いもここに書いてあるね。
URLリンク(developer-test.mozilla.org)

354:デフォルトの名無しさん
05/05/09 20:18:57
しかし、javascript1.5の準拠バージョンが1.8b2になってしまったな。
1.8finalを出せるとよかったんだが…

355:デフォルトの名無しさん
05/05/09 22:49:42
indexOfがあるならlastIndexOfもほしいような気がするけど実際には使わないかな?
にしてもforEachとかmapとかArrayだけじゃなくって普通のObjectにもほしいな。
大文字小文字という点ではStringのsubstringとsubstrだけが例外なのかな?

356:デフォルトの名無しさん
05/05/10 00:17:18
"substring"で一単語なんじゃないかな。

357:デフォルトの名無しさん
05/05/10 00:46:48
あっ、ホントだ。sub stringじゃなかったのね。

substring
【名】 サブストリング、従属文字列{じゅうぞく もじれつ}、部分列{ぶぶん れつ}
(スペースアルク英辞郎より)

358:デフォルトの名無しさん
05/05/10 23:01:48
新しいウィジット<prefwindow/>の解説。
URLリンク(forums.mozillazine.org)

prefいじりが簡単で見やすくなった…
が、applyボタンがついてないのってUIとしてどうよ?
最近の設定ダイアログだと大抵あるのに、
firefoxは随分遅れているような気がする。

359:デフォルトの名無しさん
05/05/12 00:59:08
>>358 の Applyボタンに関して追記
WindowsビルドにはApplyボタンは付いています。UnixビルドとMacビルドにはありません。

例えば、unixビルドはGnome HIGに合わせる形でInstant ApplyスタイルになったためApplyボタンがありません
URLリンク(developer.gnome.org)
ただ、このスタイルが嫌いならばuser.jsに
user_pref("browser.preferences.instantApply", false);
のように設定すればApplyボタンが「復活」するので、好みのスタイルで使えます。つか、そうしています。

360:デフォルトの名無しさん
05/05/12 03:08:36
また Gnome HIG か。
悪い方向にしか働いてないんじゃないか?
俺、Gnome なんて使ったことないし。fluxbox で十分。

361:デフォルトの名無しさん
05/05/12 03:41:46
入門のための書籍もしくはwebサイトはありませんか?

362:デフォルトの名無しさん
05/05/12 04:37:55
>>8-12

363:デフォルトの名無しさん
05/05/12 16:49:21
> 359
Win の beast(tinderbox 最新) trunk だと Option ダイアログに OK と Cancel しかない。
browser.preferences.instantApply を true にすると Close だけになる。
何か操作間違えてるかな、Theme はデフォルト。

364:デフォルトの名無しさん
05/05/12 21:01:39
>>363
URLリンク(lxr.mozilla.org)
を読んだ感じではそういう実装だね。

ダイアログがモーダルなら、applyボタンの出る幕はないし、
そうでないなら、InstantApplyにしとけ、ってコトなんだろう。

365:デフォルトの名無しさん
05/05/12 23:21:00
>>361
Mozilla拡張の作成
URLリンク(firefox.geckodev.org)
つまりは、hello、worldまでの準備。
これじゃあ、ダメかな、自分は、ココのおかげでスタートを切れた

あとは、このスレの最初の方のリンクを頼りに頑張らないといけないと思う

366:デフォルトの名無しさん
05/05/13 18:20:13
>>365
それは既に時代遅れになってる。

367:デフォルトの名無しさん
05/05/13 22:18:57
URLリンク(weblogs.mozillazine.org)
おもすれー

368:デフォルトの名無しさん
05/05/16 20:49:33
Dive Into GreaseMonkey
URLリンク(diveintogreasemonkey.org)
すごいね~

369:デフォルトの名無しさん
05/05/16 20:54:09
Greasemonkey compiler
URLリンク(www.letitblog.com)
で、こいつで userScript を Firefox の拡張 xpi に変換する。

370:デフォルトの名無しさん
05/05/18 22:03:11
いろんなリモートXULアプリが公開されている。
URLリンク(www.georgenava.com)

371:デフォルトの名無しさん
05/05/18 23:23:13
>>366
最新情報はいったいどれなの?

372:デフォルトの名無しさん
05/05/19 12:14:27
どれ、って言われてもなぁ。
(いろんな人の)脳内としか言いようがない。

まだ1.1が出てないうちは、あれでいいのかもしれないが、
今から拡張の書き方を覚えるなら、contents.rdf云々を覚えるのは無駄。

賞味期限があと一日しかない牛乳を買うような感じ、とでも。

373:デフォルトの名無しさん
05/05/24 02:39:00
ユーザーにプログラムを配布するときはどうすればいいの? 
クラスが登録されていませんと出て、実行できないのですが・・・。 


374:デフォルトの名無しさん
05/05/24 02:50:04
>>373
もうちょっと詳しく。

375:デフォルトの名無しさん
05/05/24 03:03:45
URLリンク(homepage2.nifty.com)
ここにある、実行ファイルを実行すると、Mozilla ActiveX Controlがインストールしてある環境では
うまくいくのですが、そうでない別のパソコンでは上記のようなエラーが出ます。
ともにfirefoxはインストールしてあります。
Mozilla ActiveX Controlは必ずインストールしなければならないのでしょうか?
それともregsvr32 を使って何かを登録すればよいのでしょうか?

376:デフォルトの名無しさん
05/05/24 13:23:22
>>375
それは、ActiveXを使うかどうかに拠ります。
ActiveXの本質はMicrosoftのコンポーネントオブジェクトモデル(COM)ですよね。
ActiveXを使うなら、Mozilla ActiveX Controlが必要になりますが、
そんなものをインストールしてあるFirefoはかなりの少数派です。

ただ単に自分のアプリケーションでGeckoを使いたい場合は、
URLリンク(rcl.hp.infoseek.co.jp)
を参考にしてください。
80行程度の短いプログラムですが、きちんと動きます。

コンパイラ(MS Visual Studio)を持ってないなら、
URLリンク(blue.sakura.ne.jp)
が参考になるかと思います。

377:デフォルトの名無しさん
05/05/24 17:06:00
自作のJava XPComオブジェクトを呼び出す(By LiveConnect)Firefoxプラグインの作り方を
紹介しているようなページをご存知な方いらっしゃったら、教えてもらえませんか?
Javaでなくて、自作XPComだけでもかまいません。
ここのスレッドでも紹介されているようなサイトを色々見ながら試行錯誤しているのですが
なかなか痒いところに手が届く情報が手に入りません。
今は、
URLリンク(simile.mit.edu)
を解析しながら試しているのですが、規模が大きすぎて。

378:デフォルトの名無しさん
05/05/24 18:25:28
>>377
プラグインというのはいわゆるプラグインではなく、拡張のことですよね?

Firefoxは拡張として独自のXPCOMを付加するのが以前に比べて*かなり*
簡単になっているので、こちらの方はお薦めです。

一方で、以前はプラグインに自作のXPCOMをつけるのは当たり前でしたが、
今はnpruntimeがあるので無理にXPCOMを書く必要はありません。
やや、難解です。

が、ここにその古いXPCOM付きのころの解説があります。
URLリンク(web.archive.org)
npruntime版もプラグイン自体は書きあがって私のFirefoxで動いていますが、説明までは出来ていません。
(というか、ぷららを解約してしまったのでどこで公開するかも決めてないのですが…)

>>378が紹介してくれた80行のプログラムでも何度もXPCOMが呼び出されているので、
呼び出しが難しい、なんてことはないですよね?
どのへんのことを知りたいのでしょうか?

基本的な作り方の手順は、
1. idlを書く。
2. idlをコンパイルして、.xptと.hを手に入れる。
3. .hに書いてあること参考にc++で実装する。
4. それをコンパイルしてdll(linuxならso?)に出力する。
という感じです。

どのへんで詰っているのでしょうか?

多分、誰かが参考リンクとして、
URLリンク(www.mozilla.org)
を挙げてくれると思いますが、これはやや遠回りしすぎな感じがします。

379:デフォルトの名無しさん
05/05/24 18:36:43
>> 378
はい、拡張でした。

XPComに関して、呼び出しはまったく問題ないのですが、
idlにインターフェイス定義してから先、どうやってコンパイルするのか、
どこにxptファイルを置くのか、どのような仕組みでdllがロードされるのか
という点が分かっていません。

情報ありがとうございます。調べてみます。

380:デフォルトの名無しさん
05/05/24 19:21:23
>>379
とりあえず、Gecko SDKを入手してください。
URLリンク(ftp.mozilla.org)

すると、xpidl.exe(だっけ?)が入っているので、
それをDOS窓等から使います。
URLリンク(www.mozilla-japan.org)

例えば、idlが"nsIHoge.idl"とすると、
xpidl.exe -m typelib -i (gecko-sdkへのパス)\idl\ -o (カレントディレクトリへのパス)\nsIHoge (IDLファイルへのパス)
で、nsIHoge.xptができます。
xpidl.exe -m header -i (gecko-sdkへのパス)\idl\ -o (カレントディレクトリへのパス)\nsIHoge (IDLファイルへのパス)
で、nsIHoge.hができます。

この、nsIHoge.hというのはなかなか優秀でして、実はコメントとして、
実装のテンプレートを書いてくれてあります。
ですから、それをhoge.hとhoge.cppにコピペして、
hoge.hからnsIHoge.cppをインクルードしてやれば、
コンパイラとリンカは通ります。
ですから、変数名をいじって肉付けすれば半分完成です。

残りの半分は登録です。
URLリンク(lxr.mozilla.org)
を参考におまじないを書くのが一番分かりやすいと思います。

今は何のことかわからなくても、
とりあえずsampleという名詞を自分のクラスの名前と置換しておけば
あとは、マクロがうまくやってくれる、はずだと思いますが…

381:デフォルトの名無しさん
05/05/24 21:26:25
>>367 これ試せた人います?


382:デフォルトの名無しさん
05/05/25 01:05:54
Sageの様にブックマーク内の特定フォルダを取得したくて苦戦中っす。
bookmarks-menuをDOMで掘ろうとしても、「このページをブクマ」等しか取得できなかった。

とりあえず、XUL上でRDF & template でブクマ全体をメニュー化するところまではいったんだけど、
特定のフォルダのみ表示ってruleでいけるのでしょうか?

RDFをDOM形式に変換できれば簡単なのに・・・

383:デフォルトの名無しさん
05/05/25 01:20:40
>>382
RDFのXPCOMだけで掘り進めるので、慣れれば簡単ですよ。
ちなみに、rdfをdomにするのは当然可能なんですが、却って
扱いづらいのは請け合いです。なんたってRDFですからね。

384:デフォルトの名無しさん
05/05/25 03:49:17
>>383
ありがとうございます。XPCOMを調べておぼろげながら理解してきました。
OOPとDOM操作さえできれば拡張作れると思ってたけど、勉強することいっぱいありますね。

RDFっていうのは、RDFインターフェースを実装してて
ファイルはXMLっぽいけどAPIは別物なわけですね。

bookmarkはnsIRDFDataSourceを実装してるから、
GetSourceか、GetTargetあたりにフォルダ名やフォルダIDをパラメータで渡して
対象のノード(?)を取得して、templateに流し込む。

こんな認識でOKでしょうか? 勘違いだったらごめんなさい。

385:デフォルトの名無しさん
05/05/25 12:51:40
>> 380
できました。ありがとうございます。
今度はJavaのプログラムをバックエンドで動かすため、
npruntimeにトライしてみます。



386:デフォルトの名無しさん
05/05/25 19:43:49
>>385
どういう状況を想定しているのかわかりませんが、
npruntimeはおよそ役に立たないと思います。
javaを使うだけなら、普通のjava pluginでいいような気がするし。

387:デフォルトの名無しさん
05/05/26 17:12:35
ここで報告するような事では無いかもしれませんが、firefox1.04でなんとかxulmakerを動かす事が出来ました。

で、ちょっと質問なんだけど、jslibでjarのリソースを読みこむ事は出来ないのでしょうか?
というのも、自分で見た限りだと、xulmaker.jsの438行目
this.XULSchema.openFile(getChromePathName("xul.xsd"));
で、パッケージのxul.xsdを読みこもうとしてコケてるみたいなのです。
(この部分を適当なパスに変えてあげて、XMDocumentのgetRootElement methodの所でdocumentElementをcloneNodeするようにしたら動くようになりました)

388:デフォルトの名無しさん
05/05/26 21:42:48
>>387

jarプロトコルで読めます。

389:デフォルトの名無しさん
05/05/28 18:57:44
強制的にサイドバーを開かせたいんですが、
そういう関数はありますか?
toggleSidebar() じゃなくて openSidebar みたいな。
あるいは、
サイドバーが閉じてることを調べる方法でもいいんですが。

390:デフォルトの名無しさん
05/05/28 20:15:31
>>389
toggleSidebarの実装を見れば分かります

391:デフォルトの名無しさん
05/05/28 21:24:17
どうもありがとうございます。
toggleSidebar みたら forceOpen オプションがありました。
toggleSidebar(aCommandID, forceOpen)


392:デフォルトの名無しさん
05/05/29 06:37:04
Greasemonkeyスクリプトについての質問はOKですか?
document.bodyにappendChildすると分裂してしまうのですがこれは何故でしょうか

スレリンク(software板:587番)
これを使うと、bgsound1個に対し2個embedが追加されてしまいます
(DOMインスペクタや選択範囲のソースを表示では1個しかembedはないのですが)

実質document.bodyにappendした時も、最後のノードが分裂することがあります
スレリンク(software板:601番)
URLリンク(neugierig.org)

393:デフォルトの名無しさん
05/05/29 16:30:13
embed.nextSiblingが存在しない

394:デフォルトの名無しさん
05/05/29 17:10:33
>>393
それだと分裂じゃなくエラーになると思うのですが

<html><body>
<embed src="a.mp3">
test
</body></html>
の場合、embed.nextSiblingはテキストオブジェクトです("\ntest\n"になります)


<html><body>
<embed src="a.mp3"></body></html>
このようにnextSiblingが存在しないように書いたとしても、
Greasemonkeyが最後にスクリプトを加えるので存在しないと言うことはありえないと思います
(この場合Unenbedで加えられた[download]のリンクが分裂します)


395:デフォルトの名無しさん
05/05/29 18:20:41
Greasemonkeyってヘッダじゃなくて、bodyにスクリプトを足してるのか?

396:デフォルトの名無しさん
05/05/29 18:39:04
>>395
document.body.innerHTMLをalertを使うなどして表示すると

<script>(function(){
var GM_xmlhttpRequest = window.GM_xmlhttpRequest;
var GM_registerMenuCommand = window.GM_registerMenuCommand;
var GM_setValue = window.GM_setValue;
var GM_getValue = window.GM_getValue;
var GM_log = window.GM_log;

//user.jsの内容

})();</script>

このようなタグが最後に追加されています。
スクリプトの実行が終わると削除されるようですが。

397:デフォルトの名無しさん
05/05/29 18:43:28
>>396はGreasemonkeyスクリプト中でdocument.body.innerHTMLを参照した場合の話です

(function(){alert(document.body.innerHTML;})();

こんな感じのスクリプトを作ると確認できると思います。
ちなみにalertじゃなくdocument.body.appendCild(documen.createTextNode(document.body.innerHTML))だと
先に言ったような分裂現象が起こります


398:デフォルトの名無しさん
05/05/29 19:09:29
わからないなら、xpathやめてdomのを使っとけばいいんじゃない?
ああいうfor文を書いてカッコいいとか思ってるんなら止めはしないけど。

399:デフォルトの名無しさん
05/05/29 21:06:56
javascript:(function(){h=document.createElement('a');h.href='URLリンク(www.google.co.jp)';
h.appendChild(document.createTextNode('google'));document.body.appendChild(h)})()

こんな bookmarklet を試して見ると分裂は起きない。
Greasemonkey が二度 appendChild してる可能性がある。
一度 bookmarklet で試してみて Greasemonkey の問題か Script の問題か
切り分けるのが先決か?

400:デフォルトの名無しさん
05/05/29 21:10:01
>>398
あのfor分はUnembedのパクリですが、問題はそこじゃないと思うんですが・・・
getElementsByTagNameでも同じです
というかdocument.body.appendChild()すると分裂するんです

(function(){document.body.appendChild(documen.createTextNode(document.body.innerHTML));})();
例えばこのスクリプトも分裂現象が起こります

401:デフォルトの名無しさん
05/05/29 21:11:33
>>399
Greasemonkeyで件のスクリプトを使ったときだけ問題が起こります
普通にscriptタグで記述すると問題はおこりません

402:デフォルトの名無しさん
05/05/29 21:36:48
じゃぁ Greasemonkey の問題でしょ。
URLリンク(greasemonkey.mozdev.org)
の Tips の最初を見ると onload の前に userScript の処理をするみたいだから
window.addEventListener("load", function(e) {...}, false)
でやってみれば?

403:デフォルトの名無しさん
05/05/30 02:04:01
たまーにnsIWebBrowserPersistのsaveURIでうまく保存できない画像があるのですが、原因は何なんでしょうか???
下記のスクリプトでcanonのロゴ画像を保存しても壊れてしまいます。

var src = Components.classes['@mozilla.org/network/standard-url;1']
.createInstance(Components.interfaces.nsIURL);
src.spec = "URLリンク(consumer.usa.canon.com)";
var dst = Components.classes['@mozilla.org/file/local;1']
.createInstance(Components.interfaces.nsILocalFile);
dst.initWithPath("C:\\canon_logo.gif");
var wbp = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
.createInstance(Components.interfaces.nsIWebBrowserPersist);
wbp.saveURI(src, null, null, null, null, dst);


404:デフォルトの名無しさん
05/05/30 08:16:19
>>400
htmlの方でそのスクリプト呼んでない?
テストのために<body onload="func()">みたいにしてて、
そのままgreaseスクリプトとしても実行してるとか

405:デフォルトの名無しさん
05/05/30 09:48:26
>>404
alert挟んででデバッグしてみましたが1度しか呼ばれてませんでした

>>402
駄目でした。setTimeoutでそれなりの時間を設定すれば分裂は回避できましたが・・・


分裂した方はDOMインスペクタに表示されず、
選択しようとしても変なことになる
(後に付いた方のテキストをドラッグして選択しようとすると何故か前の方の同じ部分が反転表示になる)
のでGreasemonkeyかFirefox、あるいはGeckoのバグのような気がします

どうもありがとうございました

406:デフォルトの名無しさん
05/05/30 14:06:30
JavaScriptでXPCOMを作ろうと思って、
URLリンク(lxr.mozilla.org) とか
URLリンク(nazodane.hp.infoseek.co.jp) とか
を参考にJSとXPTファイルを用意したんだけど、
この二つを
<Profile>/extensions/{<uuid>}/components
においても認識してくれない。
> reference to undefined property Components.classes['@nanto/jstest;1']
という警告が出てエラーになる。
<Firefox>/components
においても同様にうまくいかないんだけど
どうすればJavaScriptで作ったXPCOMを
登録する(認識させる)ことができるんだろう?

407:デフォルトの名無しさん
05/05/30 18:28:49
>>406
まずは、ちゃんと拡張をつくってインストールしてください。

408:デフォルトの名無しさん
05/05/30 20:49:48
<Profile>/ もしくは <Firefox>/components の compreg.dat と xpti.dat
一度削除した?

409:デフォルトの名無しさん
05/05/30 21:22:08
>>408
拡張を作っているなら、そんなトリッキーなことをしてはいけません。
ユーザーが一人もいないなら話は別ですが。

410:デフォルトの名無しさん
05/05/31 00:06:13
>>409
拡張作成時は compreg.dat の削除でOK。

411:デフォルトの名無しさん
05/05/31 00:22:47
>>410
そんな作業は必要ない。

412:406
05/05/31 01:20:44
XPIにパッケージ化してインストールしたらうまくいきました。
横着してXULDで作った拡張のディレクトリに
後からファイルを入れたのがいけなかったようです。
インストール時じゃないと登録されないのね。
アドバイスくれた人ありがと。

413:デフォルトの名無しさん
05/05/31 09:57:52
拡張の ID ってどうやってつけるんでしょうか。
適当につけていいんですか?

414:デフォルトの名無しさん
05/05/31 11:34:50
値が衝突しないように算出方法が決まっているので、所定のツールを使うべし。
その名をuuidgenという。
WindowsだとVS.NETやPlatform SDKとかに入っている。
LinuxやFreeBSDなどのUNIXだと標準で入ってる。


415:413
05/05/31 12:04:48
どうもありがとうございます!
手元のlinuxに入ってました。
でもどうやって重ならないことを保証してるんでしょう?
単純に巨大な数の中からランダムで選んでるから?
16^32 パターンあるみたいですね。

416:413
05/05/31 12:16:37
過去ログでおんなじ話題出てましたね。ごめんなさい。
macアドレスと時間で一意性を求めてるらしいですね。
URLリンク(www.opengroup.org)
URLリンク(www.atmarkit.co.jp)


417:デフォルトの名無しさん
05/05/31 22:16:45
Components.classes["ぬるぽ"].createInstance(Components.interfaces.nsIガッ);
でインスタンスを作るとき、nsIガッ のコンストラクタに引数を渡す方法はありますか?

418:デフォルトの名無しさん
05/06/01 02:38:31
>>417
無理みたい。
URLリンク(www.mozilla.org)

FilePathInit = new Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath");
FilePath = new FilePathInit(path);
こーゆーのはありだけど。

419:デフォルトの名無しさん
05/06/01 12:04:19
コンストラクタに引数とか言ってるようじゃXPCOMへの道はまだ険しいね

420:デフォルトの名無しさん
05/06/01 22:38:41
>>419
どーゆーこと?

421:デフォルトの名無しさん
05/06/01 23:34:32
>>419
道は険しくていいからnsURICheckerのmAllowHeadをPR_FALSEにして
初期化するにはどうしたらいいのか教えてくれ
URLリンク(lxr.mozilla.org)
引数付きコンストラクタはC++専用のインターフェースなの?

422:デフォルトの名無しさん
05/06/02 09:59:25
URLリンク(lxr.mozilla.org)
protected なメンバ変数 mAllowHead を外部から弄れたら困ってしまう。

> 引数付きコンストラクタはC++専用のインターフェースなの?
JS から XPCOM オブジェクト作成の時は使えない。
IDL に setter がないとどうにもならん...JS で実装してしまうって手はあるけどマンドクサ

423:デフォルトの名無しさん
05/06/02 15:20:42
>>421
それが引数付きコンストラクタに見えるんだったら、
もう険しいどころの話じゃないぞ。
protectedとか関係ないし。

xpcomやるのに、c++がどうしても必要だとは言わんが、
ソース読んで質問するなら、ある程度の理解が要求されるわな。
いや、ある程度でいいんだけど…

424:デフォルトの名無しさん
05/06/02 19:09:59
>>421 (>>417->>423 あたり)
URLリンク(lxr.mozilla.org)
の70~74行目のコンストラクタは引数なしで、呼び出し時にmAllowHead=PR_TRUEに初期化されます。
さらにmAllowHeadは >>422 さんが仰るとおりアクセスが不能で、且つmAllowHeadを直接弄るメソッドもないようです。

>>417=421 さんが何を意図としてmAllowHeadを弄りたいのかわからないので的外れかもしれませんが、nsURIChecker::Init(aURI)で引数aURIのスキームを"http"以外にするとmAllowHead=PR_FALSEになるみたいに思いますがいかがでしょうか。

425:デフォルトの名無しさん
05/06/04 00:41:49
prefwindowの続報
URLリンク(developer-test.mozilla.org)

426:デフォルトの名無しさん
05/06/05 11:28:53
メモ書き
>>16 の現在URL
URLリンク(kb.mozillazine.org)

427:デフォルトの名無しさん
05/06/07 23:13:29
ac_add_options --enable-static
でコンパイルするコツを教えてください
全部

428:デフォルトの名無しさん
05/06/07 23:52:49
>>427
ビルド環境もわからないのにコツも糞もない

ac_add_options --disable-shared
をセットで使うのが基本だが

429:デフォルトの名無しさん
05/06/08 10:17:49
こんなのが出来てるね。
URLリンク(developer-test.mozilla.org)

430:デフォルトの名無しさん
05/06/08 10:28:52
物凄い勢いで文字化けしてるのは俺だけなのか

431:デフォルトの名無しさん
05/06/08 10:46:31
皆化けてるんじゃなかろか

432:デフォルトの名無しさん
05/06/08 11:00:09
何とか意味をとれそうなのはUTF-8だけど、やっぱり化けてる。
混ぜてあるんじゃないかなぁ

433:427
05/06/08 23:35:31
>428
すっとんきょうな事言って申し訳ありません
VC6なんですが、こけるんです。派手に、mozilla側じゃなくWindowsが
ファンが鈴鹿ばりにうなってるし
再起動後に傷口みようとして、2>build.errで飛ばしてもなんも出来てなくて
エラーなのかもわからない、そこで尋ねてみたですよ

メモリーいくらぐらい積んでるんです?256MBだと必然?
その文字化けものっそいね

434:デフォルトの名無しさん
05/06/09 00:26:55
なんで、MJ と本家で微妙に要求スペックが違うんだろ?

URLリンク(www.mozilla-japan.org)
URLリンク(www.mozilla.org)

435:デフォルトの名無しさん
05/06/09 01:08:38
本家の文書を訳して公開→その後本家が更新するも追随せず

436:デフォルトの名無しさん
05/06/09 19:05:50
URLリンク(bugzilla.mozilla.org)
このバグはいろんな意味で影響力がでかいやつだが、チェックインされている。
(サーチプラグイン以外も)

とりあえず、gooとかみたいに自社サイトのプラグインを配っている企業はどうするのだろうか。
やっぱ、update.mozilla.orgに行くのか…?

437:デフォルトの名無しさん
05/06/16 06:23:39
DOMの要素を識別する値を取得したいんですが
何かありますか?
比較するときなどに使いたいのですが

438:デフォルトの名無しさん
05/06/16 08:08:56
>>437

idふれよ。
ない・嫌なら独自プロパティとか。

439:デフォルトの名無しさん
05/06/16 12:54:03
URLリンク(bugzilla.mozilla.org)
がチェックインされたから、jsファイルの推奨mimetypeが

"application/javascript"
"application/ecmascript"

になる。

後方互換+IE互換として
"text/javascript" //Webサイトでは主流
"application/x-javascript" //拡張では主流。現行のxpfeやtoolkitもこれ。
"text/ecmascript"
は残される。

440:デフォルトの名無しさん
05/06/16 20:31:09
まだ internet-draft だし IANA にも登録されてないのに「x-」取っちゃっていいのか?

441:437
05/06/17 00:37:33
>>438
ありがとうございます。
独自プロパティとはどういう物ですか?

442:デフォルトの名無しさん
05/06/17 06:13:50
>>437
普通に値として比較できるんじゃなかろうか。
if (element1 == element2) {
//Todo
}
else {
//Todo
}
jsobjectはともかく、中の人のポインタは同じだと思うし、
そういう便宜を計っていると思う。

443:437
05/06/17 06:15:43 BE:107543693-##
>>442
えぇ、確かにそのまま要素同士で比較できるんですが
その値を取得できないものかと思いまして。

444:デフォルトの名無しさん
05/06/17 06:36:34
うわ、こんな時間に即レスされてるとは思わなかった。

>>443
そりゃ、値の用途によるんじゃないかな。
少なくとも、汎用的な意味では無理だから。
いつ取得していつ(比較に)使うわけ?

445:437
05/06/19 07:27:49
>>444
RDFにその値を保存しておき、その値で対象の要素を比較
みたいな事をやりたいんですが・・・。

446:デフォルトの名無しさん
05/06/19 08:28:20
>>445
つまり、セッションを跨ぎたいと?
そらむりでそ。
血統書でも書いておけば?

447:デフォルトの名無しさん
05/06/19 11:30:14
XPathでも使うとか

448:デフォルトの名無しさん
05/06/26 16:06:19
nsITreeViewを使用したツリーの実装で、各ツリーセルのアイコンを定義するにはどうすればよいでしょうか?

449:デフォルトの名無しさん
05/06/26 16:31:56
getImageSrc

450:デフォルトの名無しさん
05/06/26 16:48:08
即レスありがとうございます。無事できました。

451:デフォルトの名無しさん
05/07/11 17:38:19
メールの本体をstringとして参照する方法をご存知の方いたら教えてください。
ヘッダとアタッチメントを見る方法はわかったのですが(nsIMsgほげほげ)、
本文だけがわからんとです。orz

452:451
05/07/11 17:38:51
追加:451はthunderbirdでの話です。

453:デフォルトの名無しさん
05/07/11 18:23:11
>>451-452
URLリンク(forums.mozillazine.org)

454:451
05/07/11 19:16:25
>>453
ありがとうございました。

455:デフォルトの名無しさん
05/07/11 19:22:11
どういたしまして。

456:デフォルトの名無しさん
05/07/15 22:30:32
いつの間にか、install.rdfでプラグインもインストール出来るようになってる。

URLリンク(bugzilla.mozilla.org)

457:デフォルトの名無しさん
05/07/16 01:03:01
サーバ版 Gecko が開発中
URLリンク(mozillazine.jp)

458:デフォルトの名無しさん
05/07/16 20:57:03
ブラウザタブの切り替えを確実に捕捉する方法はありませんか?
GooglePageRankではbrowser.xulのwindowにaddEventListenerでloadとfocus時のイベントを追加するという方法を
とっていますが、これだとイベントがダブって発生してしまったり、まれにうまくいかないことがあるようです。

459:デフォルトの名無しさん
05/07/16 21:55:59
>>458
progresslistenerのonlocationchangeは確実に呼ばれるな。

460:デフォルトの名無しさん
05/07/16 23:35:33
>>459
ありがとうございます。こんなふうなものを試しましたが、NS_ERROR_ILLEGAL_VALUEで怒られてしまいました。
var pl = {
onLocationChange : function() { alert("OK"); }
};
gBrowser.mCurrentBrowser.webProgress.addProgressListener(pl, Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);

461:458
05/07/17 04:05:28
gBrowser.mTabBox.addEventListener("select", function(){dump("OK");}, false);
どうやらこれで解決しました。

462:デフォルトの名無しさん
05/07/18 18:12:23
javascript 書くのにエディタ何使ってます?

463:デフォルトの名無しさん
05/07/19 03:19:00
Emacs + java-mode
ロクなモード elisp が無いのが痛過ぎ

464:デフォルトの名無しさん
05/07/19 08:01:18
463に同じく。Meadowだけど。

465:デフォルトの名無しさん
05/07/19 16:20:20
Vim

466:デフォルトの名無しさん
05/07/19 19:27:07
メモ帳

467:デフォルトの名無しさん
05/07/20 00:55:05
TeraPadかな

468:デフォルトの名無しさん
05/07/20 14:22:29
メモ帳はさすがに苦しいなぁ。
CRが入らないように出来ないと使えない。

469:デフォルトの名無しさん
05/07/20 14:43:35
vim って vi 的には使えるけど、
インデントの仕方がよくわかんないんだよな。

470:デフォルトの名無しさん
05/07/20 15:08:22
インデントなんていらね。
気がついたら、親指が二回スペースを叩いてる。

471:デフォルトの名無しさん
05/07/20 15:17:53
それは時間の無駄だろう

472:デフォルトの名無しさん
05/07/20 15:24:00
そうか?
cvsから引っ張ってくるソースでも異なるインデントが混在してるし。

俺はスクリプトも一行80文字以内でやってるから、インデントを4にせずに、2にしてた。
結局スペースを2回の方が、淀みなく書ける。

473:デフォルトの名無しさん
05/07/20 15:34:48
それは単にお前の慣れの問題じゃないのか?
俺もソフト2タブ派だけどオートインデントだよ。
使ってるのは xyzzy。

474:デフォルトの名無しさん
05/07/20 15:35:50
まあ人によるんじゃないかな。
本当にすごいプログラマでも
エディタの機能ろくに使わない人もいるし。

475:デフォルトの名無しさん
05/07/20 15:39:53
というか、インデント量が深くなるとやってられなくね?
タブ一発で揃えてくれないと、かなりイライラすると思うのだが。

476:デフォルトの名無しさん
05/07/20 15:59:28
深くならないからいいんだよ!
俺の事はもうほっといてくれ。

       実際にすごく深い時は、コピペだな。
       慣れっておそろすぃ。

477:デフォルトの名無しさん
05/07/20 23:02:47
オートインデントとか使わんのか。

478:デフォルトの名無しさん
05/07/21 07:16:56
>>468
わたしゃWindowsしか使ってないんでわからないんだけどCRが入ると困る場面ってどんなのがある?

479:デフォルトの名無しさん
05/07/21 08:35:57
>>478
ファイルサイズを抑えたい時

480:デフォルトの名無しさん
05/07/21 12:57:25
unix改行とwindows改行が混ざってる拡張いくつか見たことあるんだけど、
あれはやってるの?
コピペのせいかな。

481:デフォルトの名無しさん
05/07/21 22:15:28
>>479
そんなんで「使えない」ってレベルになるほど困るのか?

482:デフォルトの名無しさん
05/07/22 06:59:42
まあ、拡張しか書かないんだったら、どっちでもいいな。

483:デフォルトの名無しさん
05/07/23 15:33:37
ネイティブコードに関しては、XPコードではCRLF改行を使わないって規約があったな

484:デフォルトの名無しさん
05/07/23 16:55:40
CRLFを使わないんじゃなくて、LFにする、ってことだな。
今は知らんが、昔のマックはCRだったし。

485:デフォルトの名無しさん
05/07/30 06:21:07
バージョンチェックの方法がちょっと変わったそうだね。
URLリンク(lxr.mozilla.org)

各番号がsigned charの範囲内って
1.1.0.20050730のようなバージョン番号は非推奨ってことか……

486:デフォルトの名無しさん
05/07/31 00:51:46
install.rdfでプラグインをインストールさせられますか?
IE Tabを一纏めにしたい・・・。

487:デフォルトの名無しさん
05/07/31 16:40:35
>>486
trunkなら可能
branchならミリ
二つ同時にインストールさせるようにする事は可能

488:デフォルトの名無しさん
05/08/03 19:29:46 BE:409147597-#
うーんアップデートに関する日本語ドキュメントが少なくてこまってます。

■確認したこと

URLリンク(www.mozilla-japan.org)
ここの「カスタムアップデート RDF」を参考にupdate.rdfを作成してアップ。

,htaccessに
AddType text/rdf .rdf
と記述(試しにこれを消すとエラーになる)

■問題点

バージョンアップしたxpiと一緒にrdfをアップしても、
「更新されたパッケージが存在しませんでした」
となる。
update.rdfへのパスや記述が間違えてるとエラーになるので、
それはないものと思われる。

■特にわからないこと

上記URLの「em:updateURL」を見ても、
%ITEM_VERSION%アップデート対象となる拡張機能のバージョン
とか、それを得るためにupdateURLにrdfを問い合わせるんじゃないの?
問い合わせるときに先にGETで送るとか、どうもよくわからないんで、
この「更新問い合わせ」そのものの動作がよくわからない。

■特に聞きたいこと

アップデートがつつがなく行えてる皆さん、
他になにか特別なことする必要はありますか?

489:デフォルトの名無しさん
05/08/03 19:30:52
FireFoxを窓から投げ捨てなさい。

490:デフォルトの名無しさん
05/08/03 19:34:39
>>487
他のうpだてのrdf参考に汁

491:488
05/08/04 03:20:44 BE:77933243-#
具体的にやったことを書くと、

update.rdf
<RDF:Description about="urn:mozilla:extension:{「xpiのid」}">
<em:version>「バージョン」</em:version>
<em:updateLink>http://「xpiの置いてあるサイト」/「xpiのファイル名」.xpi</em:updateLink>
</RDF:Description>

を作成してhttp://「xpiの置いてあるサイト」/update.rdfとしてアップ。

.htaccessに
AddType text/rdf .rdf
と記述。

xpiのinstall.rdfには
<em:updateURL>http://「xpiの置いてあるサイト」/update.rdf</em:updateURL>
を記述。

これでupdate.rdfに記載してるバージョンより低いxpiから
拡張機能の更新マネージャーで更新問い合わせしても
「更新されたパッケージが存在しませんでした」
となります。

うまく更新を伝えるには他に何かチェックするところはありますか?

492:デフォルトの名無しさん
05/08/04 03:35:33
それ書式が古いよ。

<rdf:Description rdf:about="urn:mozilla:extension:(ID)">
 <em:updates>
  <rdf:Seq>
   <rdf:li>
    <rdf:Description>
     <em:version>(バージョン番号)</em:version>
     <em:targetApplication>
      <rdf:Description><!-- Firefox -->
       <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
       <em:minVersion>1.0</em:minVersion>
       <em:maxVersion>1.0+</em:maxVersion>
       <em:updateLink>(.xpiのURI)</em:updateLink>
      </rdf:Description>
     </em:targetApplication>
    </rdf:Description>
   </rdf:li>
  </rdf:Seq>
 </em:updates>
</rdf:Description>


493:488
05/08/04 03:57:49 BE:58450133-#
>>492
ありがとうございます。
うまいこと更新できるようになりました。

494:デフォルトの名無しさん
05/08/29 15:43:01
人大杉制限がついてから、誰も書き込んでないのか。
このまま放置しておけば、さすがに落ちるだろうな

495:デフォルトの名無しさん
05/09/03 18:40:26
スレリンク(unix板:837番)
837 :KoRoN@Vim%Chalice ◆8XALICEsdk :2005/09/03(土) 03:22:34
今手元で、XPCOM+C/Migemo使ってnsIMigemoなるものを作り、簡単なサンプルが動いて
ます。こんな感じで、MozillaのJavaScriptで正規表現が取得できる状態なんです。

> netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
> var migemo, answer;
> migemo = Components.classes["@kaoriya.net/migemo/nsMigemo,1"].createInstance();
> migemo = migemo.QueryInterface(Components.interfaces.nsIMigemo);
> answer = migemo.query(document.getElementById("MIGEMO_INPUT").value);
> document.getElementById("MIGEMO_OUTPUT").value = answer;

496:デフォルトの名無しさん
05/09/04 05:47:43
すばらしい。
クロスプラットフォームならなおすばらしい。

497:デフォルトの名無しさん
05/09/04 10:34:22
とりあえず落としてみた限りではWindows専用だったけど
プラットフォームごとのバイナリを用意することもできるようになったし
クロスプラットフォームも夢じゃないよね?
これ使えばXUL/Migemoがもっと速くなるのかな?

498:デフォルトの名無しさん
05/09/12 11:47:33
locale の browser.dtd からテキスト読んで javascript 内でつかいたいのですが無理ですかね
.xul に browser.dtd 読ませてなんかの要素に <element id="test" label="&test;/> のような感じで
取得するとか・・・。でもどの要素にしたらいいのか分からない_| ̄|○
ってかそもそもそんなことしたらだめなのか?
何とかして dtd を javascript で使いたい・・
javascript で if (label == "test") とかしたら言語が変わったとき
if (label=="テスト") にしなきゃいけないし、言語ファイルによっては
label="テストです"とかにしてるかもしれないし。
言語を意識せずに &test;と書いてしまった方がいいと思うのです。
if (label=="&test;")
とか
testlabel = getLabel("&test;");
if (label==testlabel)
とか出来たら楽になるかと
いいアイデアありませんか?

499:デフォルトの名無しさん
05/09/12 12:37:56
>>498
xbl内では普通にそうやっちゃうなぁ。
オブジェクト化する部分だったらpropatiesの方がいい
表面だったらxul内でそうやればいいとおも

500:デフォルトの名無しさん
05/09/12 13:54:31
firefoxのプラグインの開発情報はどこで手に入りますか?

501:デフォルトの名無しさん
05/09/12 15:31:19
>>498
その変数 label の中身って何?

502:デフォルトの名無しさん
05/09/12 15:36:28
>>498
createEntityReferenceは……対応していないようだ。
となるとcreateContextualFragmentで無理やり生成するとかかな?

503:498
05/09/12 17:10:43
menuitem.label とかです。
Fx1.0.x だと 「URL を開く(L)...」となっているのですが
Fx1.5.x だと 「URL を開く...」となっています
こういう違いがあるので menuitem.label で比較すると面倒だなとおもいまして。
かといって全部IDがふってあるわけじゃないし
やりたいことは Cutemenus の locale 対応です。

504:デフォルトの名無しさん
05/09/12 19:23:39
JavaScript で DTD ファイルを読み込んで解析するという力業になりそう

505:lowandsh
05/09/12 23:39:30
>>503
label 以外の方法で改造してみましたが、どうでしょう。

URLリンク(www7a.biglobe.ne.jp)

506:デフォルトの名無しさん
05/09/12 23:53:08
>>505
labelでなくkeyとcommandで検定したわけね。
なるほどこっちの方があきらかに良さげ。
っていうか元のやつは非英語圏をまったくもって無視した作りですね。

507:498
05/09/13 00:34:30
>>505
なるほど。でもこれですべてのmenuitemに対応できるわけではなさそうですね。
やはり label もみた方がいいのか・・・

508:デフォルトの名無しさん
05/09/13 02:40:04
>>507
こんな感じで隣からたどるのはダメですかね。

case "cmd_print": iconic(mItems.item(i), 'print');
            iconic(mItems.item(i - 1), 'hatena');     // Page Setup...

他の拡張でメニューをいじられると、ずれちゃうかもしれませんが(^^;
いちおう、File メニューだけ変更したものをアップしておきました。

509:lowandsh
05/09/13 02:41:20
すみません。名前を書き忘れました(^^;
アップしたのは、 >>505 の URL です。

510:デフォルトの名無しさん
05/09/13 03:00:12
DTD を JavaScript で扱ってみる方法をでっち上げてみたけどどうよ?

URLリンク(electrolysis.hp.infoseek.co.jp)

511:lowandsh
05/09/13 03:19:39
getEntities() 知りませんでした。
ためになります。

512:デフォルトの名無しさん
05/09/13 03:53:02
>>510
GJ


513:デフォルトの名無しさん
05/09/13 14:30:54
>>510
DTDからDTDの呼び出し、<!ENTITY xxx "&yyy;というテスト">の対応キボン

514:498
05/09/13 17:24:10
>>510
うほwいいですね。
参考にさせてもらいます。

515:デフォルトの名無しさん
05/09/13 21:36:58
いえーい皆もっとやれやれーーー!いいぞーー

516:デフォルトの名無しさん
05/09/13 22:01:38
だが断る!

517:デフォルトの名無しさん
05/09/18 18:39:03
CuteMenus の overlay
<overlay label="cutemenusOverlay"
xmlns="URLリンク(www.mozilla.org)">
ってなってるけど
label って id のまちがいじゃね?
支障はないけど

518:デフォルトの名無しさん
05/09/21 10:33:55
open link in new tabの時に、
新しいtabに移動するかどうかを、
「設定」のtab browsingのところまで行かないで、
ナビゲーションツールバーのボタンなんかで設定する拡張ありますか?

519:デフォルトの名無しさん
05/09/21 15:10:38
>>518
すれ違いの予感

Mozilla Firefox 拡張機能スレッド Part5
スレリンク(software板)

520:デフォルトの名無しさん
05/09/24 15:56:44
URLリンク(book.mycom.co.jp)
この本買った人いる?
興味あるけど立ち読みできる店ないの

521:デフォルトの名無しさん
05/09/25 14:51:44
cutemenusを改造して、
プロファイル/menucions/label/戻る.png を取得するようにしてるのですが
「戻る」はコンテキストメニューとメインメニューの「移動」のところにあるのですが
コンテキストメニューの方にしかアイコンがつきません
コンテキストメニューにアイコンがついているということは画像パス取得は間違ってないと思うのです。
なぜメインメニューの方にはつかないのか・・・。
ソースを張りますのでどこが悪いのか教えてください。


522:521
05/09/25 14:54:49
function iconic(menuitem,icon) {
  menuitem.setAttribute("class", "menuitem-iconic");
  menuitem.setAttribute("image", icon);
}
function getIcon(type,name)
{
  var DIR = Components.classes['@mozilla.org/file/directory_service;1']
                    .getService(Components.interfaces.nsIProperties);
  var fileOrDir = DIR.get('ProfD', Components.interfaces.nsIFile);
  fileOrDir.append("menuicons");
  fileOrDir.append(type);
  fileOrDir.append(name + ".png");
  if (!fileOrDir.exists()) return null;
  var ioService = Components.classes["@mozilla.org/network/io-service;1"]
                  .getService(Components.interfaces.nsIIOService);
  var entryURI = ioService.newFileURI(fileOrDir).spec;
  return entryURI;
}
function cutemenusInit() {
  var mItems = document.getElementsByTagName("menuitem");
  for (var i = 0; i < mItems.length; ++i) {
    if (mItems[i].id) {
      var icon = getIcon("id", mItems[i].id);
      if (icon) iconic(mItems[i], icon);
    }
    if (mItems[i].label) {
        // 戻るは2つあるのでmItems[i].label == 戻るが2度あるはずなのに・・・
        var icon = getIcon("label", mItems[i].label);
        if (icon) iconic(mItems[i], icon);
    }
}

523:デフォルトの名無しさん
05/10/02 10:30:58
まだ良く読んでないが、もしかしてこれって大事?
URLリンク(slashdot.jp)

524:デフォルトの名無しさん
05/10/02 18:26:25
pref.jsにセットされている不要な設定を削除する(値だけでなくキーも削除する)方法はありますか?

525:デフォルトの名無しさん
05/10/03 16:32:15
nsIPrefBranchのclearUserPref()

526:デフォルトの名無しさん
05/10/03 19:05:42
>>523
そうだとすると>>520の本の内容はあっという間に古くなるな。

527:デフォルトの名無しさん
05/10/03 19:46:22
いや、私も作者はチェックすべきだと思います。
1.0系はそれでぐだぐだになりましたし。

逆に言うと、マイナーアップデートでも、
拡張にとっては致命的な変更が有り得るってことが、
1.0系で経験論的に実証された、という流れですね。

惑星はブログを勝手に集めてるだけなので、
あそこに有用な情報が載るかどうかは運次第、というか、
さほど重要な変更でもないし。

528:デフォルトの名無しさん
05/10/03 22:23:00
惑星でもいいけど、developer.m.o とか wiki.m.o に書いておいてほしいな。
Bugzilla だけってのは困るよ。

529:デフォルトの名無しさん
05/10/12 01:09:00
nsDictionary.jsとかってどうやって使うの?

530:デフォルトの名無しさん
05/10/12 04:35:18
URLリンク(www.xulplanet.com)

531:デフォルトの名無しさん
05/10/12 12:16:24
nsDictionary.jsって、nsIDictionaryといっしょなんですか?
ごめんなさい、よくわからなくて…

532:デフォルトの名無しさん
05/10/12 15:10:25
nsなんたら
の ns って何の略ですか?
netscape?

533:デフォルトの名無しさん
05/10/12 15:21:36
>>532
>>126

534:デフォルトの名無しさん
05/10/13 23:01:25
おそらくWin特有の問題だと思うのですが、
フォルダ名の末尾が表、能、ソなどで終わるフォルダをnsIFileのcopyToを使って
コピーしようとするとフォルダ内のファイルが移動されずに処理が完了してしまいます。
これを防ぐ対策は何かありませんか?

535:デフォルトの名無しさん
05/10/14 00:45:32
>>531
nsDictionary.jsにはContract IDが"@mozilla.org/dictionary;1"であるXPCOMコンポーネントの実装コードが含まれている。
で、そのコンポーネントはインターフェースnsIDictionaryを実装している。

つまり
var dic = Components.classes["@mozilla.org/dictionary;1"].createInstance();
としたときのdicのソースコードがnsDictionary.js

536:デフォルトの名無しさん
05/10/14 06:45:36
>>534
最新のtrunkのGREでも発生するならBugzillaに報告してみたら

537:デフォルトの名無しさん
05/10/17 12:44:23
>>535
なるほど、わかりました!!ありがとうございます!

538:デフォルトの名無しさん
05/11/05 01:39:36
URLリンク(www.extendfirefox.com)
拡張の 1.5 対応促進活動かもしれんが、おもろいことはじめたようで

539:デフォルトの名無しさん
05/11/09 08:03:32
transformiixってどこいったの
打ち切ったなんて事ないしょ?

540:デフォルトの名無しさん
05/11/09 15:40:19
どこいったってどういうこと?
ちゃんとあるじゃん。

541:デフォルトの名無しさん
05/11/09 17:51:35
お騒がせしました。cvsで見ればありました。

URLリンク(www.mozilla-japan.org)
これ以前はできたのにそんなものはないって言われたんで、配置の問題でした

542:デフォルトの名無しさん
05/11/12 22:19:40
XULで圧縮ファイルの展開は可能ですか?

543:デフォルトの名無しさん
05/11/13 02:09:02
zipはできるはず
xpiはzipそのものだから

544:デフォルトの名無しさん
05/11/13 15:50:46
>>542
XPCOMが作れれば何でもできる。

545:デフォルトの名無しさん
05/11/13 17:10:15
あくまでも既存のXPCOMでできないかと思ったしだいです。
けどXULPlanet落ちてるな。

546:デフォルトの名無しさん
05/11/14 11:37:10
XULPlanetがなくてもソースがあれば……ってLXRもサーバーエラーで見れない。
こりゃもうダメぽ。

547:デフォルトの名無しさん
05/11/14 12:32:54
>>546
こういうのってなぜか重なるよね


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch