04/12/05 00:09:18
オラ拡張作る。
前スレ
Mozillaでプログラミング(XUL)
スレリンク(tech板)
2:デフォルトの名無しさん
04/12/05 00:18:44
テンプレ書いてるうちに立ってたorz
XULはXMLベースのUI記述言語です。
Mozilla,Firefox,Thunderbird,Netscape等の
Gecko系のソフトウェアために開発されました。
このスレはXUL、javascriptで利用できるXPCOM、
拡張を作り方などを主に話しあうスレです。
前スレ
Mozillaでプログラミング(XUL)
スレリンク(tech板)
姉妹スレ
Geckoベースのブラウザを作ろう
スレリンク(tech板)l50
>>2-50あたりに関連リンク、近況など。
3:1
04/12/05 00:20:13
>>2
うわ、すまそ
4:デフォルトの名無しさん
04/12/05 00:21:06
>>1
いやいや、スレ立て乙。
5:デフォルトの名無しさん
04/12/05 00:26:06
>>1
乙!
6:デフォルトの名無しさん
04/12/05 00:28:06
Z。
7:デフォルトの名無しさん
04/12/05 00:31:38
みなさん、overlayした拡張を作るときどのようにテストしてるんですか?
Firefoxで、xul単体だけなら引数の-chromeで表示・テストできるんですけど
overlayした拡張のテスト方法が分かりません。
8:デフォルトの名無しさん
04/12/05 00:36:23
MozillaJapan 資料集: コアアーキテクチャ: XUL
URLリンク(www.mozilla-japan.org)
XUL Tutorial 日本語版 - 和訳ドキュメント一覧
URLリンク(www.mozilla.gr.jp)
XULアプリケーション作成入門
URLリンク(www.mozilla.gr.jp)
XUL研 Moz2chなど
URLリンク(xul-app.hp.infoseek.co.jp)
XULプログラマの参考書
URLリンク(www.bekkoame.ne.jp)
9:デフォルトの名無しさん
04/12/05 00:40:47
XUL Planet 聖典
URLリンク(www.xulplanet.com)
10:デフォルトの名無しさん
04/12/05 00:42:28
>>7
ブラウザ(chrome://browser/content/browser.xul)にオーバーレイしたXULなら
毎回ブラウザを再起動してテストしなければならない。
11:デフォルトの名無しさん
04/12/05 01:02:37
関連リンク
Mozilla Cross Reference(ソースコード検索)
URLリンク(lxr.mozilla.org)
上とxulplanetでなんとかなる。以下余談。
mozilla.orgはサイト構成に問題があるので、自力で見つけるのは難しい。
URLリンク(www.mozilla.org)
Components.interfaces.nsILocalFileとか機械的にコピペしてる人は
一度くらい読んでおくといいかも。
URLリンク(www.mozilla-japan.org)
公式拡張サンプル。mykはFirefox用の記事を書いてるって
3ヶ月くらい前に言ってたけど、まだ完成してないらしい。
多分忘れてる。
URLリンク(kb-upgrade.mozillazine.org)
私が書いたコードも入っているが、はっきり言うと全然使えない。
でも、__proto__とかやけにマニアックな解説がある。
URLリンク(wiki.fdiary.net)
前スレの後ろの方で紹介されてた。
wikiだから、いつの間にか化けてるかも。
Javascriptを極めたいなら、
URLリンク(www.crockford.com)
こういうのが好きな人とか。
foo.prototype.__defineGetter__('bar', function(){return 0;});
12:デフォルトの名無しさん
04/12/05 01:05:47
>>10
ありがとうございます。
それは、URLリンク(www.mozilla.gr.jp)に書いてあるように
chromeディレクトリ下にxulなどのファイルを置いた状態でテストできるのでしょうか?
13:デフォルトの名無しさん
04/12/05 01:08:40
もちろんできますよ。
14:デフォルトの名無しさん
04/12/05 01:12:29
>>13
それは、引数の-chromeをつけてFirefox本体を起動するんですか?
質問が多くてすいません
15:デフォルトの名無しさん
04/12/05 01:23:26
いや、そんな必要は無いです。
引数-chromeはあるクロムURLのXULを単体のウィンドウで開きたい時だけ使います。
16:デフォルトの名無しさん
04/12/05 01:26:39
多分、なんか勘違いしてるんじゃないかな。
overlayは当然インストールしないとテストできない。
で、インストールする時にzipで固めずにインストールするといい感じ。
URLリンク(kb-upgrade.mozillazine.org)
17:デフォルトの名無しさん
04/12/05 01:30:00
>>15
そうだったんですかー。
じゃあoverlayしたxulを書いたら、普通に起動するだけでOKなんですね。
ありがとうございました。
>>16
ってやっぱりインストールしないとダメなんですね・・・
installed-chrome.txtを編集するだけじゃダメですか?
18:デフォルトの名無しさん
04/12/05 01:33:17
installed-chrome.txtを編集するのとinstallするのは全く同じ。
インストーラーが書き換えるか手で書き換えるかの違いだけ。
でも、firefoxの場合、フォルダをインストールする方が楽だと思う。
19:デフォルトの名無しさん
04/12/05 01:39:29
>>18
勉強になります。ありがとうございました。
20:デフォルトの名無しさん
04/12/05 01:46:20
だから、順番が逆なんだね。
インストールスクリプトを最初に書いて、
白紙のoverlayをとりあえずインストールするんだよ。
で、いろいろいじって完成したら、コピーをとってアンインストールして、
zipで固めてインストールテスト、公開、鋭いツッコミ、ぎゃあ。
21:デフォルトの名無しさん
04/12/05 01:49:20
開発用の環境とインストールテスト用の環境は分けといた方が楽だよ。
(当然プロファイルは分けて)
22:デフォルトの名無しさん
04/12/05 08:21:21
>>10
毎回ブラウザを再起動しなくてもブラウザ自体をリロードすればいい
#そのためのxuld
Ctrl+\でリロード
URLリンク(nazodane.hp.infoseek.co.jp)
23:デフォルトの名無しさん
04/12/05 10:06:56
>>22
なるほど!!今まで馬鹿みたいに毎回再起動してたわ。
24:デフォルトの名無しさん
04/12/05 10:35:11
漏れは新しいウィンドウ開いて確認してる。
25:デフォルトの名無しさん
04/12/05 12:04:20
>>24
ですね。私もそれです。
26:デフォルトの名無しさん
04/12/05 23:30:52
>>11 に追加
URLリンク(www.hevanet.com)
XUL コンポーネントのサンプル集。 XUL のリファレンスとしても使える。
27:デフォルトの名無しさん
04/12/06 06:00:49
誰あ前スレを閲覧できておくように保存してくれる人など居ないものか?
28:デフォルトの名無しさん
04/12/06 06:30:10
保存してまとめサイトにアップしておきました。
URLリンク(firefox.geckodev.org)
29:デフォルトの名無しさん
04/12/06 06:47:10
>>18
フォルダをインストールってどうやるの?
30:デフォルトの名無しさん
04/12/06 07:43:01
>>29
前スレにあったはず。
31:30
04/12/06 08:30:16
すまん。。
>>29
>>16
32:デフォルトの名無しさん
04/12/06 16:35:35
>>16をわかりやすく言うと、
chromeにjarファイルの代わりにフォルダをいれて、
install.rdfにjarファイルの代わりにフォルダ名を書いとけってことだ
33:デフォルトの名無しさん
04/12/06 19:53:41
>>31
>>32
トン!
34:デフォルトの名無しさん
04/12/08 01:37:07
まとめサイトの和訳チュートリアル見ながら見よう見真似で拡張の中身とか
install.rdf install.jsを書いて試したんですが、いざインストールしても
再起動する時にエラーで正常にインストールされません。
エラー文にはcontent.rdfの位置指定が間違ってるとかあるんですが・・。
35:デフォルトの名無しさん
04/12/08 06:38:25
install.jsはとりあえずは不要では?
また、content.rdfではなく、contents.rdfです。
36:デフォルトの名無しさん
04/12/08 07:18:36
質問です。firefoxの拡張を作ってるのですが
ツリーのカラムヘッダを非表示にするにはどのようにすればよいのでしょうか?
treecolにhideheaderを追加してもダメでした。
37:デフォルトの名無しさん
04/12/08 07:24:12
hidecolumnpicker="true"になってないとか?
38:デフォルトの名無しさん
04/12/08 07:28:17
>>37
ありがとうございます。とりあえずこんな感じで書いてるんですが、ダメでした・・orz
<tree flex="1">
<treecols>
<treecol id="test" hideheader="true" hidecolumnpicker="true" primary="true" flex="1" />
</treecols>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="test"/>
</treerow>
<treechildren>
<treeitem>
<treerow>
<treecell label="test1"/>
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</tree>
39:デフォルトの名無しさん
04/12/08 07:31:48
hidecolumnpickerはtreeの属性です。
<tree flex="1" hidecolumnpicker="true">
以下略
40:デフォルトの名無しさん
04/12/08 07:33:25
treeにhidecolumnpicker="true"を書いたらいけました・・・
>>37さんありがとうございました。
スレ汚しすまそ。
41:デフォルトの名無しさん
04/12/08 13:15:49
>>32
肝心なインストールの時はどうやるんだ・・・xpiに固めたら意味ないだろうし・・・
英語読めねー誰か解説してくりー
42:デフォルトの名無しさん
04/12/08 13:19:15
>>41
いや、xpiには固めるんだよ。
43:デフォルトの名無しさん
04/12/08 13:23:50
>>42
マジですか、でもそれじゃあ編集できないんじゃ・・?
44:デフォルトの名無しさん
04/12/08 13:26:28
あーなんとなく意味分かったかも。
45:デフォルトの名無しさん
04/12/08 13:28:56
xpiには固めないでしょ。
情報が古いかもしれないけど、
URLリンク(www.mozilla.gr.jp)
このページに書いてあるように手動でフォルダを置き、設定ファイルを書き換える。
46:デフォルトの名無しさん
04/12/08 13:29:54
そう、いじるのはプロファイルの中身だから、
上手い具合に解凍されてるわけだ。
47:デフォルトの名無しさん
04/12/08 13:30:30
>>45
そっちの方が古い
48:デフォルトの名無しさん
04/12/08 13:32:07
>>45-46
とりあえずxpiに固めて試してみます。
お二人さんありが㌧
49:デフォルトの名無しさん
04/12/08 13:37:37
tinderstatusとか、xpiだけどインストールすると
解凍された状態になる。
確か、torisugari氏もget file sizeのnon-jarred版を公開してたはずだが、
404だね。
50:デフォルトの名無しさん
04/12/08 18:38:02
一見404でも、この辺にあったりする
URLリンク(cgi29.plala.or.jp)
URLリンク(cgi29.plala.or.jp)
51:デフォルトの名無しさん
04/12/09 03:05:05
install.rdfのIDって適当に書いていいんですかね?
52:デフォルトの名無しさん
04/12/09 03:38:23
>>51
だめ。GUID Generator を使おう。
URLリンク(extensions.roachfiend.com)
53:デフォルトの名無しさん
04/12/09 04:02:42
>>52
おお!サンクス!
54:デフォルトの名無しさん
04/12/09 07:20:19
たまに適当に書いているというか拡張の名前を含めているのもみかけるが。
55:デフォルトの名無しさん
04/12/09 08:21:52
適当すぎ。
56:デフォルトの名無しさん
04/12/09 08:38:40
仕様上の要求はGUIDなので、Web上で公開するならGUIDを使うべき。
実際にはどんな文字列でも動くから、
自分のマシンだけで使う場合は適当でいい。
57:デフォルトの名無しさん
04/12/09 18:08:22
MSのGUIDGenとかで良いよ。
URLリンク(www.microsoft.com)
58:デフォルトの名無しさん
04/12/09 20:09:14
GUIDGenは大文字と小文字が混じってるのがなぁ。
MACアドレス使ってるからこっちがいいんだろうけど。
59:デフォルトの名無しさん
04/12/09 23:19:17
XPCOMで
aIOService.newChannelFromURI(aURISpec).QueryInterface(Components.interfaces.nsIHttpChannel);
とかやってるのを見たのですが、newChannelFromURIの返り値はnsIChannelなのにnsIHttpChannelで
QueryInterfaceできるのは何故でしょうか。
60:デフォルトの名無しさん
04/12/09 23:52:16
nsIHttpChannelはnsIChannelを継承してるから。
URLリンク(www.xulplanet.com)
61:デフォルトの名無しさん
04/12/10 01:43:07
>>60
うーん、それってあまり正確じゃないような。
継承してるのは確かだけどね。
あえて言うなら、「理由はない」な。
aURISpecのプロトコルがhttp[s]?じゃなかったら、
QueryInterfaceは失敗する。
こういう実装がごく自然だってことはわかってほしいが…
62:59
04/12/10 07:28:25
メソッドが返す値はドキュメントに書いてあるインタフェイスを
継承した別のインタフェイスを持っている可能性もあるってこと?
メソッドが返す値が持っている可能性があるインタフェイスの一覧とかって
どこ見たら分かりますか?
63:デフォルトの名無しさん
04/12/10 08:30:46
firefoxでタブを一覧表示しようとしてるのですが
現在開いてるタブをすべて取得するにはどのようにすればよいのでしょうか?
64:デフォルトの名無しさん
04/12/10 08:40:45
gBrowser.mTabContainer.childNodes
65:デフォルトの名無しさん
04/12/10 08:46:02
>>64
ありがとうございます!
66:デフォルトの名無しさん
04/12/10 11:06:21
>>62
>メソッドが返す値はドキュメントに書いてあるインタフェイスを
>継承した別のインタフェイスを持っている可能性もあるってこと?
そうなるね。
でもそれは、継承している親インターフェイス以外でもおき得る。
インターフェイスっていうのは、余分についてる分には文句の付けようがない。
よく本体と手足に喩えられるられるが、
「握手したいから手を差し出せ」
って言われた時、そいつの足が八本あろうがキャタピラになってようが、
手がついていれば握手に支障はない。
逆にいうと、足がいくらたくさんあっても手がなければ握手はできないから、
インターフェイスをきっちり実装するのが重要なんだけどね。
インターフェイスは必要条件を記述するためのものだから、
実際に送りつけられるインスタンスの十分条件とは限らない、って感じだろうか。
足が八本も付いてるのに、パンチしかしないのはもったいないなー、
と感じた時のためのQueryInterfaceで、
「足があるならキックもやらせようか」ということになる。
継承した子クラスってのは、普通の手だと思ってたのが
実は超合金製だった、とかそんな感じだね。
知らなきゃ握手にしか使えないが、
知ってれば釘を打ったりいろいろ使えて便利になる、と。
67:デフォルトの名無しさん
04/12/10 12:22:55
JavaScriptの重たいループ処理をバックグラウンドで実行させる方法はありますでしょうか。
勘で以下のようにやりましたが、まったく処理が動きませんでした。
var runnable = { run : function(){ 重たい処理 } };
const CITHREAD = Components.interfaces.nsIThread;
var thread = Components.classes['@mozilla.org/thread;1'].createInstance(CITHREAD);
thread.init(runnable, 0, CITHREAD.PRIORITY_NORMAL, CITHREAD.SCOPE_GLOBAL, CITHREAD.STATE_JOINABLE);
68:デフォルトの名無しさん
04/12/10 23:23:07
>>66
なるほど。
>>59のコードを書いた人はどうやって
aIOService.newChannelFromURI(aURISpec)の返り値が
Components.interfaces.nsIHttpChannelお持っていると
気付いたのでしょうか。
たまたまQueryInterfaceして分かったってこと?
69:デフォルトの名無しさん
04/12/10 23:32:31
内部の情報に詳しかったんじゃないの?
英語の方ならドキュメントも充実してるようだし・・・
70:デフォルトの名無しさん
04/12/11 01:47:54
xpcom warpped objectかどうかを判定する確実な方法が
しりたいのですが、どうすればいいですか?
71:デフォルトの名無しさん
04/12/11 02:29:33
try-catch構文でQueryInterfaceしてみるのが一番早いのではないでしょうか。
72:デフォルトの名無しさん
04/12/11 03:16:44
>>70
instanceof 構文で出来るよ。
var channel = ioService.newChannel("URLリンク(www.example.com)", null, null);
alert(channel instanceof Components.interfaces.nsIHttpChannel); // おそらく true
alert(channel instanceof Components.interfaces.nsIFTPChannel); // おそらく false
var channel = ioService.newChannel("fURLリンク(ftp.example.com)", null, null);
alert(channel instanceof Components.interfaces.nsIHttpChannel) // おそらく false
alert(channel instanceof Components.interfaces.nsIFTPChannel) // おそらく true
73:デフォルトの名無しさん
04/12/11 06:15:04
treeにアイテムを追加するにはどうすればいいの?
タブはaddTabとかあるけど、treeがいまいち分からん。
74:デフォルトの名無しさん
04/12/11 08:49:33
>>71
>>72
ありがとうございます。
もうひとつ、nsIEnumerator,nsICollectionでは
アイテムの返り値は、nsISupportsですが
例えば、nsICollectionのなかに、複数の[spconnect wapped nsI*]を格納した時
どのように、QueryInterfaceすれば良いのでしょうか。
NO INTERFACEなどが、出てしまい、うまくいきません。おねがいします。
75:デフォルトの名無しさん
04/12/11 09:11:32
try{
support.QueryInterface(Components.interfaces.xxx);
}catch(e){
if(e.name==" NO INTERFACE"}{
//インターフェイスがないとき
}
}
76:74
04/12/11 10:11:56
nsICollectionの中身が全部欲しいから、
GetElementAt(0)で、かってくる
nsISupportsがもっている、interfacesのリストなどが
わかるといいのですが。。
77:73
04/12/11 12:57:17
もしかして、appendChildとか使わないとダメですか?
78:デフォルトの名無しさん
04/12/11 13:09:15
俺だったらDOM使うけど他にも方法あると思うよ
79:デフォルトの名無しさん
04/12/11 14:13:23
>>73
createElementNSで要素を作ってappendChildしていくのも可能だけど
RDFデータソースからテンプレートで生成したほうがいい。
80:デフォルトの名無しさん
04/12/11 14:27:20
一応、nsIClassInfoっていう専用のインターフェイスがあるから、
それをもってるかどうかをまず確認した方がいいね。
81:73
04/12/11 14:30:49
>>79
その方法は、要素の入れ替わりが頻繁に起こるタイプのプログラムに向いてますかね?
そういうのを作ろうとしてるもので・・・
82:デフォルトの名無しさん
04/12/11 14:32:38
>>81
そうそう。動的なツリーを作る場合の定石。
83:デフォルトの名無しさん
04/12/11 14:33:59
要素の入れ替わりが一度でも起こるんならappendChild, removeChildなんてめんどくさくてやってられん。
84:デフォルトの名無しさん
04/12/11 14:48:55
>>82
おお、そうなんですか。ではその方法で行こうと思います。
85:デフォルトの名無しさん
04/12/12 15:03:53
binaryStreamをつかって読み書きしたいのですが
ファイルをバイナリで読み込む方法はわかったけど、
nsILocalFileをつかわずにpythonでいうStringIOのような
ものを使うにはどうすればいい?
下のようにすれば、できるかと思ったけど。
nsISimpleStreamListener.init(outputStream,observer)
outputStream.write("hoge",4)
とすると、かならず固まるか、落ちてしまいます。
正しい使い方を、おしえてください;
86:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/12 16:55:10
>>86
CSSが正しくプロパティを解釈出来てるんなら、
少なくともアトリビュートは正確、ってことになる。
alert((this.getAttribute("checked") == "true")? "Checked": "Not checked.");
でどうだろうか?
88:デフォルトの名無しさん
04/12/12 17:20:53
>>87
それでも結果は同じでした。
89:デフォルトの名無しさん
04/12/12 17:24:02
oncommandとチェックの発生順序かな
是はどうしようもないかと
90:デフォルトの名無しさん
04/12/12 17:34:31
oncommand="setTimeout(function(){alert(event.originalTarget.checked);}, 0);"
としたらうまくいきました。
Firefoxではoncommandよりもcheckedが先に変更されるということか。
91:デフォルトの名無しさん
04/12/12 17:38:23
>>90
そうみたいだね。
DOM的に言えば、Semonkeyの方が正しい挙動だと思う。
92:デフォルトの名無しさん
04/12/12 19:51:56
BookmarkなどのRDFデータソースってどこに置かれてるんでしょう?
93:デフォルトの名無しさん
04/12/12 19:53:00
htmlに変換されて保存されてる
読み出すときはhtmlからrdfに変換されてる
94:デフォルトの名無しさん
04/12/12 22:37:51
それにしてもブックマークのHTMLってなんであんなに汚いんだろう
95:デフォルトの名無しさん
04/12/12 22:38:37
>>93
サンクス
96:デフォルトの名無しさん
04/12/12 23:18:34
>>94
パーサが古いからだろうな。
どう考えてもソース公開以前のコードをそのまま使ってる。
97:デフォルトの名無しさん
04/12/15 10:38:15
Firefoxのタブのコンテキストメニューのオーバーレイってどんな感じでやればいいんでしょう?
98:デフォルトの名無しさん
04/12/15 11:31:35
スクリプトで動的に編集するしかないんじゃない?
99:デフォルトの名無しさん
04/12/15 14:50:31
mTabContainerのonclickを上書きするとか?
行儀悪・・・
100:デフォルトの名無しさん
04/12/15 17:28:17
>>99
popupshowingかpopupshownにイベントリスナーを追加したら?
101:デフォルトの名無しさん
04/12/17 04:31:04
ページがロードされるたびに、WebページのJavaScriptより先にスクリプトを
実行する方法はありますか?
browserにaddEventListener('load')する方式だと遅すぎるようです。
TbEみたいにメソッド乗っ取りするしかないのでしょうか。
102:デフォルトの名無しさん
04/12/17 16:28:12
RDFデータソースの操作って難すぃね
103:デフォルトの名無しさん
04/12/17 16:38:26
URLリンク(www.kanzaki.com)
そういえばこんどRDFの解説本が出るみたいですよ
104:デフォルトの名無しさん
04/12/17 18:34:17
>>102
オブジェクト指向じゃなく手続き型だからね
105:デフォルトの名無しさん
04/12/17 20:45:07
>>103
理論的な部分はともかく、実際に手でコードを書いて遊んでみたほうが
よくわかると思います。
>>104
個人的には究極のオブジェクト指向だと思う。
DOMが子供だましに思えるほど。
106:デフォルトの名無しさん
04/12/17 21:43:47
>>105
オブジェクト指向について分かってないだろ
例:
オブジェクト指向→
rdf=new ~();
rdf.delete();
手続き型→
rdfutil=new ~()
rdfutil.delete(rdf);
107:デフォルトの名無しさん
04/12/17 22:58:08
>>106
RDFがわかってないだけでしょ
108:102
04/12/18 00:06:39
難すぃというか面倒くさいね
109:デフォルトの名無しさん
04/12/18 00:09:38
RDFはデータ構造。
オブジェクト指向はプログラミングの様式。
手続き型なのは、RDFを扱うためのMozillaの実装。
110:デフォルトの名無しさん
04/12/18 00:14:27
まあSQLでデータベースをいじるのに比べたら全然難しいよね
111:デフォルトの名無しさん
04/12/18 01:16:32
addEventListenerの第三引数のuseCaptureってのが意味不明なのですが、
これをtrueにするのとfalseにするのとではどう違ってくるのでしょうか?
112:デフォルトの名無しさん
04/12/18 01:53:23
URLリンク(www.w3.org)
URLリンク(www2u.biglobe.ne.jp)
trueだと、リスナーが登録されたノードの内部で起こったイベントについて、そのリスナーが真っ先に呼ばれる。
falseだと、イベントが発生したノードからリスナーが登録されたノードまでイベントが伝搬した後で、マターリとそのリスナーが呼ばれる。
113:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/18 07:35:45
>>111-113
XUL Event Propagation
URLリンク(www.mozilla-japan.org)
ここに詳しく解説してある
115:デフォルトの名無しさん
04/12/18 22:57:57
開いてるウィンドウをすべて取得したいのですが、RDFデータソース以外から取得できますか?
116:デフォルトの名無しさん
04/12/18 22:59:23
>>115
URLリンク(www.xulplanet.com)
117:デフォルトの名無しさん
04/12/19 15:54:12
外部ファイルからテキストを一行づつ読み込むことってできますか?
nsILineInputStream というのがありますが、の readLine() を呼び出すとクラッシュしてしまいます。
118:デフォルトの名無しさん
04/12/19 17:22:37
XULのウィンドウを最前面ではなく背面に表示したいのですが、
openDialog(URL, "", "alwaysLowered")ではもちろん常に背面に表示されてしまいます。
タスクバーを切り替えてフォーカスしたときや必要なときに最前面に出せるようにはできませんか?
nsIWindowMediatorあたりをさぐってみたのですが、get/setZLevelといったメソッドはなぜか使えないようです。
119:デフォルトの名無しさん
04/12/19 18:14:50
>>117
クラッシュしない。
>>118
noscriptってちゃんと書いてある。
120:デフォルトの名無しさん
04/12/19 18:20:34
>>117
Firefox 1.0 で nsILineInputStream は問題なくうごくよ。
ただ、readLine はすごく遅いから 全部読み込んで、String.split("\n")
したほうがいい。
121:117
04/12/19 19:28:18
当方Firefox1.0(Linux i686)で、やはりクラッシュするするのですが、
>>120 の事情もあるので結局 split("\n");を使うことにしました。ありがとうございます。
122:デフォルトの名無しさん
04/12/19 19:46:33
>やはりクラッシュする
ぶっちゃけ、あんたの書き方が悪いんでしょ。
他人や機械のせいにするくらいなら、掲示板で質問しない方がいい。
123:デフォルトの名無しさん
04/12/20 06:58:42
むしろJavaScriptでクラッシュなんてどうやったらできるんだ
124:デフォルトの名無しさん
04/12/20 08:36:46
「あんたの書き方が悪い」で済ませられない重要なものかもしれないぞ
125:デフォルトの名無しさん
04/12/20 12:03:51
>>123
できる。俺もThunderbirdがクラッシュした。
@mozilla.org/messengercompose/quotingのQuoteMessage()に渡した
nsIStreamListenerで、onStartRequest()が呼ばれた後にonDataAvailable()が
呼ばれる代わりにクラッシュした。コールバックだと、自分のコードのどこが
まずいのかよく分からん。
ソースからデバッグビルドのThunderbirdを作って、Emacs + GDBで追いかけ
ようかと思ったけど、そうなるとXULの範疇越えてるし。
126:デフォルトの名無しさん
04/12/20 18:50:29
前から疑問に感じていたのですが、XPCOMインターフェースの接頭辞nsは何の略ですか?
127:デフォルトの名無しさん
04/12/20 18:59:37
ネットスケープじゃないの。
128:デフォルトの名無しさん
04/12/20 19:02:03
なぜmzじゃないんですか?
129:デフォルトの名無しさん
04/12/20 19:11:19
Netscape社が作ったからだろ。おまえの頭はカボチャか?
130:デフォルトの名無しさん
04/12/20 19:14:41
カボチャじゃありません。ウンコです。
|人
|___)
|__)クスクス
|∀・ )
 ̄ ̄ ̄ ̄
131:デフォルトの名無しさん
04/12/21 00:25:06
>>128
mozITXTToHTMLConv や mozIJSSubScriptLoader とか moz から始まるのがあったりする。
132:デフォルトの名無しさん
04/12/21 05:54:43
任意のWindowのResourceを取得する方法はありますか?
getWindowForResourceはあるのですが、その逆がありません。
133:デフォルトの名無しさん
04/12/21 18:09:15
>>131
あるにはあるけどかなりの少数派だね。
いまさらnsをmozに付け替えるわけにはいかないから、
nsの意味を捏造した方が早いと思う。
ネームスペースとか。
COMに全然関係ないな…
134:132
04/12/21 18:21:47
少し質問を変えます。
getWindowForResourceを使うためにWindowのResourceを取得する方法を模索しているのですが、
URLリンク(www.xulplanet.com)
ここを見ると、templateでなぜかIDが割り当てられていて
そのIDからgetWindowForResourceしてるようなのですが
WindowのResourceを取得する方法は他にないのでしょうか?
135:デフォルトの名無しさん
04/12/21 19:07:32
>>134
なぜリソースが必要なんだ?
136:デフォルトの名無しさん
04/12/21 19:13:26
>>135
リソースというかgetWindowForResourceで使う引数が欲しいのです。
137:デフォルトの名無しさん
04/12/21 19:15:01
普通にwindowがあれば要らないんじゃない?
138:デフォルトの名無しさん
04/12/21 19:24:56
>>137
それが要るプログラムな訳でして・・
とりあえず>>134のURL先のサンプルソースで割り当てられてあるIDを
RDFデータソースから取得できたらいいのですが。
139:デフォルトの名無しさん
04/12/21 20:00:37
>>138
多分、かなりアホなことやってると思うよ。
とりあえず、>>134を読んでリソースの受け取り方がわからないようじゃ、
RDFとか口走るのはどうかと思う。
つーか、あなたは>>115でしょ?
データソース、本当に要るのか?
ウィンドウのリストがあれば満足なんじゃないのか?
140:デフォルトの名無しさん
04/12/21 20:16:34
このスレだけでもずいぶんいろんなプロジェクトが進んでるみたいだけど
完成したら晒してもらえるかな?
たとえば以前あった、Googlebarの検索語を全角空白で区切っても
ちゃんと動作するようにしたのなんかぜひ使ってみたいし、
このスレで出た質問がどう生かされたのか見てみたい。
141:デフォルトの名無しさん
04/12/21 20:26:58
最近このスレに感じの悪いやつが一人紛れ込んでるな。
142:デフォルトの名無しさん
04/12/21 20:51:08
>>139
はぁ、説明するのまんどくさいんでもういいです。
143:デフォルトの名無しさん
04/12/21 20:56:00
むしろ、情報を小出しにしてるやしの方がアレだと思う。
まあ、ムキにならずにタチの悪い質問はスルーした方がお互いの為ではあるな。
144:デフォルトの名無しさん
04/12/21 21:38:49
強制IDまだ~?と言ってみるテスト。
>>140
>いろんなプロジェクトが進んでるみたい
公開されているのがほとんどです。(ScrapBookとかMoz2chとか)
>Googlebarの検索語を全角空白で区切ってもちゃんと動作するようにしたの
是は簡単にできる気がします。
>>134
resourceという変数はDOMの(要素の)ノードが入っていますのでそれを入れればいいかと
145:144
04/12/21 21:40:21
というかgetWindowForResourceからノード返せといっているのか。
window.document.getElementsByTagName("*")でいいかと
146:デフォルトの名無しさん
04/12/21 21:56:09
>>145
多分違う。
147:144
04/12/21 21:58:58
いや、>>132のやりたい事
148:デフォルトの名無しさん
04/12/21 21:58:59
>resourceという変数はDOMの(要素の)ノードが入っています
そもそもこれが間違い
149:144
04/12/21 22:00:05
あ…
属性ノードの間違いorz
スマソ
150:デフォルトの名無しさん
04/12/21 22:03:27
混沌としてきたなぁ。
もしDOMの話をしてるんだったら、属性じゃなくて、要素のID属性だから、
それでいいんだけど、多分、>>132のやりたいことは
コンテナからRDFResouceを直に取り出すことじゃないかな。
151:デフォルトの名無しさん
04/12/21 22:04:08
んでリファレンス見たら単にID渡せば良いだけという罠
152:デフォルトの名無しさん
04/12/21 22:06:40
とりあえず、>>134 は勘違いをしている確立が高いと。
何をしたいかがわからないと答えようがないなぁ
153:132
04/12/21 22:13:37
皆さん、すいません。
IDを渡せばいいってのは分かるんですが、Window Mediatorデータソースから
直接getWindowForResourceの引数に使う値を取り出したいのです。
154:デフォルトの名無しさん
04/12/21 22:31:14
データソースってとこ良く分からんがWindow MediatorはXPCOMをインスタンス化しただけだから引数に使う値はない。
#ウインドウ一覧が欲しいという事なのかな
#もうちょっと具体的にお願いします。
155:デフォルトの名無しさん
04/12/21 22:37:47
>>154
>>139-142
156:デフォルトの名無しさん
04/12/21 22:38:46
>>154
URLリンク(xulplanet.com)
このコンポーネントを使用してるのですが
>ウインドウ一覧が欲しいという事なのかな
はい、とりあえずそうです。
157:デフォルトの名無しさん
04/12/21 22:40:27
んでID付けたくない理由は?
158:デフォルトの名無しさん
04/12/21 22:44:42
というかRDFの奴が一通り使えるしRDFについて学ぶのが良いと思う。
でも単純なリストではないって事???
159:デフォルトの名無しさん
04/12/21 22:45:27
データソースから取り出すには、コンテナを初期化して、
Enumeratorを回すのが定石。
でも、ウィンドウのリストがほしいだけだったら、mediatorでも出来る上に
どっちみちSimpleEnumeratorの説明をしなくちゃならんから、
遠回りしてるだけなんだよ。
だから、情報を小出しにすんな、って言われてるでしょ?
160:デフォルトの名無しさん
04/12/21 22:47:12
>>156
頼むから、getEnumeratorを使ってくれ。
RDFは、もうちょっと知識が身に付いたあとでも遅くないから。
161:デフォルトの名無しさん
04/12/21 22:50:10
>>115-116
実は2分で結論が出てることを、ここまで引っ張ってきてるわけだ…
162:132
04/12/21 23:06:26
いや、単純にウィンドウのリストを取得するだけなら分かりますし、できるんですが。
ていうか、説明が難しい上にスレも荒れるので、自力で解決したいと思います・・
今後自分に対するレスはもう不要です、いやほんとに。
163:デフォルトの名無しさん
04/12/21 23:10:29
やり方 URLリンク(wiki.fdiary.net) に書いてきた
164:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/23 13:04:35
>>164
>>66
URLリンク(www.xulplanet.com)
166:デフォルトの名無しさん
04/12/24 05:27:02
厨房もじらーさんってまだ生きてるのかな?(・∀・)
167:デフォルトの名無しさん
04/12/24 12:41:37
>>166
メールでも送ってみたら?
168:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/31 12:46:05
テキストファイルの文字コードの自動認識する方法ってありますか?
170:デフォルトの名無しさん
04/12/31 17:41:00
>>169
あるよ
171:デフォルトの名無しさん
04/12/31 18:37:24
ウィンドウにフォーカスがあるか調べるメソッドかなんかあります?
172:デフォルトの名無しさん
04/12/31 18:44:04
自己解決しますた。
173:デフォルトの名無しさん
04/12/31 19:04:51
>>170
どのようにすれば自動認識できますか?
174:デフォルトの名無しさん
04/12/31 19:08:22
自動認識はできないんじゃ?
確かflyson氏のページに日本語の文字コードを簡易的に識別する関数があったが…
175:デフォルトの名無しさん
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するようにしたら動くようになりました)