Mozillaでプログラミング(XUL) その2at TECH
Mozillaでプログラミング(XUL) その2 - 暇つぶし2ch367:デフォルトの名無しさん
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
こういうのってなぜか重なるよね

548:デフォルトの名無しさん
05/11/14 12:50:02
archives.org経由で見たけど、XPCOMでzip関連のものはないような。


549:デフォルトの名無しさん
05/11/14 13:55:42
>>548
あるはずだよ。
#jslibを参考に汁

550:デフォルトの名無しさん
05/11/14 15:23:27
>>549 thx.

@mozilla.org/libjar/zip-reader;1 あたりですね。

ちなみに、jslibもけっこうよさげ。
上で話題になっていた、UUID用のライブラリもありました。
さすがにMACアドレスは取っていないみたいだけど。


551:デフォルトの名無しさん
05/11/15 04:40:59
XULPlanetもLXRも復活してる

552:デフォルトの名無しさん
05/11/30 13:40:19
プログラミングではないのですが、
groupboxを二つ横に並べることは可能でしょうか?
□日のように左に一つ、右に縦に二つ置きたいのです。
groupboxにflot:leftでは無理なようで・・・。

553:デフォルトの名無しさん
05/11/30 14:07:16
<hbox>
<groupbox orient="vertical">...</groupbox>
<groupbox orient="vertical">...</groupbox>
</hbox>

554:デフォルトの名無しさん
05/11/30 14:08:09
<hbox>
 <groupbox orient="vertical">...</groupbox>
 <vbox>
  <groupbox orient="vertical">...</groupbox>
  <groupbox orient="vertical">...</groupbox>
 </vbox>
</hbox>

か。

555:552
05/11/30 15:25:11
ありがとうございました、出来ました。

556:デフォルトの名無しさん
05/11/30 23:15:07
1.5になってJavaScriptコンソールにスタイルシートのエラーが出力されるようになってうざったいな。

557:デフォルトの名無しさん
05/11/30 23:54:23
<xbox>360</xbox>

558:デフォルトの名無しさん
05/12/01 13:46:46
Firefox 1.5 で SVG サポートが入ってxhtmlに埋め込んだSVGとか出るようになったわけだけど
これってXUL内でも使えるかしら?

559:デフォルトの名無しさん
05/12/01 14:14:36
>>558
display:-moz-box;でクラッシュするバグさえ無ければ。

560:デフォルトの名無しさん
05/12/01 20:15:35
popupが今表示されてるかどうかを知るプロパティのようなものはありますか?

561:デフォルトの名無しさん
05/12/02 13:28:41
onshowpopupイベントがあった気ガス

562:デフォルトの名無しさん
05/12/02 14:35:30
onpopupshowing(ポップアップメニューが表示される直前)
onpopupshown(ポップアップメニューが表示された直後)
onpopuphiding(ポップアップメニューが消える直前)
onpopuphidden(ポップアップメニューが消えた直後)
だね。
「ポップアップ」というのが広告等のポップアップウィンドウのことではなく
ポップアップメニューのことなら、これでいける。

563:デフォルトの名無しさん
05/12/02 14:36:19
>>561
onpopupshowingのこと?
あれと今回の質問の意図は違うと思うが
例えばhoge.visibleみたいな感じでtrueやfalseを取得したいんじゃね?

564:デフォルトの名無しさん
06/01/01 01:33:45
リンクをクリックした時にサウンドをならす拡張を作りたいと思ったのですが、どういう JavaScript を書けばFirefoxでリンクをクリックした時にサウンドをならせるのか分かりません。
どなたかご教授いただけないでしょうか?

565:デフォルトの名無しさん
06/01/01 02:32:30
そういう拡張すでになかったっけ?

566:564
06/01/01 04:18:19
>>565
Firefox1.5だとどれも満足に動かないので新たに作ってみようと思いまして。
既存の拡張がアップデートしてくれるならそれで良いのですが。

567:デフォルトの名無しさん
06/01/01 10:41:34
既存のxpiをばらして、install.rdfに書き換えれば大体動くんじゃないの?
(XPCOMの仕様変更入ったものはちょっとあれだけど)

568:564
06/01/01 11:54:01
もじら組をのぞいたら Navigational Sounds というのがあったのでそれいれました。
レスくれた方々ありがとうございました。

569:デフォルトの名無しさん
06/01/08 15:18:20
xblってむずくね

570:デフォルトの名無しさん
06/01/14 11:29:48
セパレータとセパレータの間にhidden="true"なアイテムしかない場合、
片方のセパレータを隠すようなスクリプトはどう書けばよいでしょうか?
UserChrome.cssでdisplay:noneにしたmenuitemにはhidden="true"が付くので、UserChrome.cssに
menuseparator:not([hidden="true"]) + *[hidden="true"] + menuseparator:not([hidden="true"])
のようなのを一個ずつ真ん中だけ増やして何行か書いてみたのですが効きませんでした。
DOM Inspectorで取得すると真ん中のアイテムにはちゃんとhidden="true"はあるのに。
真ん中を単に*とすると上手くいきます。
userchrome.cssの設定が適用された後にhidden="true"が適用されているのでしょうか。

571:デフォルトの名無しさん
06/01/16 14:42:22
スクリプトでよければ、こんな方法もあるよ
URLリンク(piro.sakura.ne.jp)


572:デフォルトの名無しさん
06/01/17 18:03:08
ありがとうございます。
まだ組み込み方よく分かりませんけど頑張ってみます。
これ本体に組み込まれると各拡張作者さんも楽になると思うんだけどなぁ。

573:デフォルトの名無しさん
06/01/21 15:25:45
すみません、教えてください。
今のSeaMonkeyのアプリケーションIDって、
Mozilla Suitと同じ(86c18b42-e466-45a9-ae7a-9b95ba6f5640)でよいですか?


574:デフォルトの名無しさん
06/01/21 16:18:38
XPCOMのnsIFileのisReadableってメソッドってなにがfalse返すの?
読み込み不可能なデータってどんなのがあるのでしょう・・・

575:デフォルトの名無しさん
06/01/21 16:25:59
>>574
 chmod u-r *したファイルとか。

576:デフォルトの名無しさん
06/01/21 16:49:41
chmodは000~777までの全ファイルディレクトリにかけたんですが全部trueを返したんで・・・
なんなんでしょうね??

577:デフォルトの名無しさん
06/01/23 04:42:36
>>573
URLリンク(s2works.homeunix.net)
これを見るとそれでよさそう。

578:573
06/01/28 13:05:57
>>577
さんくす。
とりあえずそれで試してみます。

579:デフォルトの名無しさん
06/02/03 11:15:59
Neckoについての日本語情報はどこで手に入れられますか?

580:デフォルトの名無しさん
06/02/03 12:57:44
開発方法について、良い方法があれば教えて欲しいのですが、現在は

1.コード修正
2.jarで固め、古いファイルを上書き
3.ブラウザ立ち上げる
4.確認後ブラウザ終了
(1へ戻る)

のような手順で開発に取り組んでます。
もっと効率のよいやり方があれば教えてください。

581:デフォルトの名無しさん
06/02/03 17:46:15
>>580
一般的プログラマーのように全てを書き込んでから確認というのはどうでしょうか
#jarに固めないで使う方法もあるけどそれでも効率悪い

582:580
06/02/04 00:02:06
まだ初心者なので Try And Error しながら色々試してる段階なので、
編集&確認という作業が必要な状態です。

ただその度にブラウザを殺しては立ち上げの繰り返しが大変面倒に感じます。
(殺さないとjarファイル上書きができません)

ブラウザを殺さずにjarファイル上書きする方法があれば教えて頂きたいと思ってます。

583:デフォルトの名無しさん
06/02/04 00:19:14
わざわざjarに固めずソースのままデバッグすればいいじゃん

584:デフォルトの名無しさん
06/02/04 04:02:27
>>580 俺も初心者だが・・・
chromeディレクトリにソースを置いて、installed-chrome.txtをいじってインストール。
後は↓を見て、開発環境を整備しておく。
URLリンク(piro.sakura.ne.jp)

>>581
何のことを言ってるのかさっぱり分からない。kwsk plz

585:デフォルトの名無しさん
06/02/04 13:21:29
Firefox1.5ならinstalled-chrome.txtなんてめんどくさいもの必要ない。
extensions下にパスを書いたhoge@example.comファイルを置いて、
適当な開発用フォルダしたにinstall.rdf, chrome.manifestとソースファイルを
格納したcontent,locale,skinがあればよい。
ってここらへんの話って256本に載ってなかったっけ?

586:デフォルトの名無しさん
06/02/04 21:02:50
256本はjarで固める方法しか書いてないよ


587:デフォルトの名無しさん
06/02/04 22:04:21
今ネットにあるチュートリアルはほとんどが情報古くてFirefox 1.0かそれ以前のものを対象にしたものだと思うので注意。

588:デフォルトの名無しさん
06/02/06 03:01:52
xpi更新通知用のRDFって何で生成させるのが楽かな?
何かいいスクリプトとかあれば教えてほしいんだけど。

589:デフォルトの名無しさん
06/02/06 23:16:33
firefoxに最初から入ってるjar内のxulとかをmozillaスイートとか他のブラウザに引っ張ってくるのってライセンス的にどうなの?
引用元とかDIFFを書いておけば問題ないのかな?

590:デフォルトの名無しさん
06/02/07 03:05:54
MPL/GPL/LGPLと書いてあるならライセンスの範囲内でどう扱おうと自由でそ

591:デフォルトの名無しさん
06/02/07 20:12:01
>>590
レスthx
アイコンとかはどう考えたら良い?

592:デフォルトの名無しさん
06/02/07 20:39:50
アイコンは扱いが厄介だね
まあグレーゾーンって事で
黙ってやっとくのがよさげかと

593:デフォルトの名無しさん
06/02/08 01:18:28
>>591
アイコンは許可取らないとダメだったはず

594:デフォルトの名無しさん
06/02/08 07:13:26
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
以外に読み込まなければいけない。。。?
URLリンク(www.xulplanet.com)
にあるコードをいじって(最後にdocument.write(dataListener.data))を付け加えて
HTMLに埋め込んで実行してみたら
'Permission denied to call method UnnamedClass.close' when calling method: [nsIStreamListener::onStopRequest
だって、何か良い方法あります?

595:デフォルトの名無しさん
06/02/08 07:26:05
「XUL、JSF、AJAXで実現するリッチUI - xulfaces 0.4 公開」
URLリンク(pcweb.mycom.co.jp)

こんなのもあるんだね

596:デフォルトの名無しさん
06/02/09 01:26:39
あくまでブラウザはプラットフォームという視点で、
外部アプリランチャーを作りたいんだけど、
URLリンク(kb.mozillazine.org)
この資料を参考にして、XULのイベントスクリプトタグ、functionの中身を
このサンプル丸写しというか、exeのパスだけ通してXULファイルを
Firefoxから開いても何の反応もなし。何が問題なのかな。

597:デフォルトの名無しさん
06/02/09 05:11:52
XPConnect特権がないからじゃないの?
firefox.exe -chrome hoge.xul
として読み込ませれば多分動く

598:デフォルトの名無しさん
06/02/09 07:18:32
どうもありがとう。根本的にその辺知らなかったよ。
ファイル操作とかXULをローカルで認証させるセキュリティの仕組みだね。
どうもおかしいと思ってたけど納得した。

ところで
URLリンク(www.lucky-bag.com)
こういうもんがあるけど、widgetの開発ってどの程度Extentionの開発より
簡単になるのかな。基本的に同じ技術だからそんなに変わらない?
YahooのWidgetのほうはなんかYahooから直にどうやって開発するかみたいな
資料のリンクがあるし、なんかとっつきやすい印象があるんだけど。

599:デフォルトの名無しさん
06/02/09 07:32:34
URLリンク(pcweb.mycom.co.jp)
URLリンク(www.atmarkit.co.jp)

とかWindowsもMacのDashBoardみたいにGadgetってのをVistaで出すらしいんだけど、
なんかクロスプラットフォームなのにOSやらブラウザごとに違うWidgetの配布方法とか
とってだめだね。Firefoxitもfireエクステンションとかにしているし。
Widgetっていろいろあってすぐ使えて最初面白いんだけど、
小さい部品であるがために逆にデスクトップにちらばってそのうちうっとうしくなってくる。
だから逆にこういうもんがいつも開いているFirefoxとかのブラウザのTabとショートカットで
管理できたら、それがベストな方法だと思う。OperaもWidget出したらしいけど。

600:594
06/02/09 12:25:22
やっぱりHTMLじゃ動かないんですね、XMLとXULの違いが(どっちも同じに見えるのですが・・・)
もうちょっと勉強してみます。

601:デフォルトの名無しさん
06/02/09 13:17:45
XMLってのはタグで入れ子になったデータ構造一般のこと。
HTMLは一番最初にでてきた形式で、このタグ構造をもっと推し進めたのがXML。
XULもXMLの一種。

602:デフォルトの名無しさん
06/02/09 13:18:43
XML を基礎としたユーザーインターフェース言語 (XML-based User-interface Language)

603:デフォルトの名無しさん
06/02/09 14:25:17
つか、XUL の本質って JavaScript の方が、どちらかというとメインじゃないか?

604:デフォルトの名無しさん
06/02/09 14:50:22
昔、いろいろJavaScriptでHTAアプリケーションとか作ってたけど、
激しく生産性が悪い。まともなデバッガすらないので、なんで走らないのかすらわからない。
XULアプリも原理は単純なんだからはやくVS.netクラスのIDEできないかね?


605:デフォルトの名無しさん
06/02/09 16:00:07
SGMLを知らんのか…

606:デフォルトの名無しさん
06/02/09 20:43:43
> VS.netクラスのIDE
いや、それ贅沢すぎだろw

607:604
06/02/09 22:20:48
マイクロがXAMLかなんかのためにおそらくVS.net対応させるだろうから、
それ利用すれば、最小の手直しで動くと思いついたよ。

608:604
06/02/09 22:28:37
URLリンク(itpro.nikkeibp.co.jp)

これとか

609:デフォルトの名無しさん
06/02/09 23:29:01
>>607
GUI のポトペタ等はどうすんの?
どこら辺がどうなってどう利用すると、最小限で VS.NET 並の XUL の IDE ができるのか、俺には全然ワカンネ。
つか、無理だろ。
XML が使えるかということなら、既に VS は使えまくってるし、使いまくってるだろ。シリアライズとか。
SharpDevelop なら、オープンだった気がするから、まだ可能性はあると思うが。いや、ねーなw
どうでも良いが、VS の価値は MSDN に多くある気がしないでもない。

んなことより先に、まともな jacascript-mode がまず欲しい。

610:デフォルトの名無しさん
06/02/09 23:42:37
xamlはXMLベースの"コンパイル"言語。
xulはインタプリタ。

611:610
06/02/09 23:45:31
ってかeclipseがxulに対応してたはず。

612:594
06/02/10 01:26:01
未だにMozillaのXPCOMがHTMLのJavascriptから呼び出せないのにXMLから呼び出せる?のが分からないのですが。。。
eclipseは今学校の宿題用に入れたばかりなのでそれを使って書いてみようと思います。

613:デフォルトの名無しさん
06/02/10 01:48:19
>>612
権限さえ奪えばhtmlからも呼び出せるよ。
あまり意味ないけどね

614:594
06/02/10 03:51:23
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
を書いているのですがHTMLでは途中でとまってしまうっぽいです

実験的にHTMLで作り、最後にXMLに移植(違う人が)して貰おうと思っていたので
onDataAvailable()とonStopRequestが呼び出せないのはかなり痛手です。
>>125さんと同じ症状のようです

615:デフォルトの名無しさん
06/02/10 12:29:05
HTMLファイルをどこに置いてる?
file:///c:/hoge.xul
みたいな感じで普通にローカルに置いてたら動かないかな?

616:594
06/02/10 13:34:30
HTTP鯖を動かして見たところ、どうもWeb上のHTMLからは呼び出せないようなので
URLリンク(www.mozilla.org)
を参考に呼び出そうとしたのですが・・

user_pref("capability.principal<ID名>","URLリンク(localhost)");
user_pref("capability.principal.<ID名>granted","UniversalXPConnect");
とするようなのですが、ID名とは何か特別な名前が有るのでしょうか?

617:デフォルトの名無しさん
06/02/10 17:00:47
user_pref("signed.applets.codebase_principal_support", true);
してる?

> 未だにMozillaのXPCOMがHTMLのJavascriptから呼び出せないのにXMLから呼び出せる?のが分からない
最近変ったかもしれんが、単純に言えば
chrome://... からならば XPCOM が呼び出せる。
file://.. URLリンク(...) は上の設定や Signed Script にしたりしてから enablePrivilege しないとよびだせない。


618:594
06/02/10 17:26:51
>>617
ありがとうございます、ID名をp0にして
user_pref("signed.applets.codebase_principal_support", true);
を付け加えるとWeb上のファイルのPrivilegeをOKするかどうか聞いてきたのでOKすると
やはり同じ問題が出現しました。
それまでにXPCOMでソケットを開いたりメッセージをEcho鯖に送ったりしているのは成功しているので
(鯖の方ではメッセージが確認できます)
onDataAvailable()とonStopRequest()だけがローカル上で開いたときと同じようにエラーがーおきました
firefox.exe -chrome file://C:\server\testCliantMozilla.html
chromeでDOS窓から開いても同じ症状が出ました。
これってMozillaのバグのような気がしてきたのですが、私の頭のバグなのでしょうか?


619:デフォルトの名無しさん
06/02/11 00:00:24
エラーって >>594 の Permission denied ... と同じやつ?
何がしたいのか詳しいとこ書いてくれんとさっぱりわからんのでまずコード出せ。

620:594
06/02/11 00:28:04
エラーは594と全く同じ物です
URLリンク(www.jt200x.com)
UPしました、データ受信の所まではちゃんと動くのですが。。。

621:デフォルトの名無しさん
06/02/11 00:37:34
>>620
文法エラー起こしてないか?

622:デフォルトの名無しさん
06/02/11 01:25:14
URLリンク(www.jt200x.com)
再現しませんでしたが?

623:594
06/02/11 02:22:40
URLリンク(www.jt200x.com)
寝ぼけていて古いファイルをUPしていました。これが新しい方です、すみません

624:594
06/02/11 10:48:20
誰かがUPしてくださったコードをコピーして、try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}catch(e){
としたところ、'Permission denied to get property XULElement.accessKey'
と'Permission denied to get property XULElement.disabled' というエラーが発生しました。
是が非でも権限をくれないようです。。。

625:622
06/02/11 12:01:33
>>624
スコープ(callbackやlistener)毎に権限の取得が必要っぽいけどそれ以外は問題なかったよ?
ってかJSの基礎が分かってないようだからまずはECMAScriptの仕様書を読んだ方がいいとおも
URLリンク(www2u.biglobe.ne.jp)

626:594
06/02/11 15:42:22
>>625
>スコープ(callbackやlistener)毎に権限の取得が必要っぽいけどそれ以外は問題なかった
URLリンク(www.jt200x.com)
これでしょうか?
Error: [Exception... "'Permission denied to get property XULElement.disabled' when calling method:
[nsIDOMXULControlElement::disabled]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"
location: "JS frame :: URLリンク(localhost) :: anonymous :: line 48" data: no]
Source File: URLリンク(localhost)
Line: 48
Error: [Exception... "'Permission denied to get property XULElement.accessKey' when calling method:
[nsIDOMXULLabelElement::accessKey]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"
location: "JS frame :: URLリンク(localhost) :: anonymous :: line 48" data: no]
Source File: URLリンク(localhost)
Line: 48
とエラーになってしまいました、Mozillaのプロファイルになにか書き忘れているのでしょうか?

>ECMAScriptの仕様書
有用な情報ありがとうございます、一週間ほど前にリファレンスを買ってきたばかりでこのような物があると知りませんでした。
明日ミーティングで誰かがこの問題を解決してくれていると良いのですが。。。

627:デフォルトの名無しさん
06/02/11 18:35:55
XULRunner
URLリンク(www.forest.impress.co.jp)

628:622
06/02/11 19:40:36
>>626
スマソ見たときには既に流れてた。

629:594
06/02/12 00:48:18
URLリンク(www.jt200x.com)
コピーを取っておいた物を上げ直しました

>>627さんの
XULRunnerも試してみます

630:594
06/02/12 09:28:18
ついに解決しました。
結局Extensionとして組み込まないとだめだったようです。
URLリンク(ted.mielczarek.org)

URLリンク(kb.mozillazine.org)
がかなり役立ちました
いろいろありがとうございました。

631:604
06/02/12 16:56:30
FILERFOXが欲しいと思っていろいろ検索したんだけど、
URLリンク(nazodane.hp.infoseek.co.jp)
こういうのが最初に見つかったが、結局それはIEVIEWでもできる程度のもので、
さらに調べると、
URLリンク(filemanager.mozdev.org)
URLリンク(filemanager.mozdev.org)
URLリンク(www.anisolution.com)

こういう素晴らしいものが
FileManager is finally LGPL!!! This means you can freely use FileManager or any portion of its code in both free and proprietary projects.
というオープンソースコードがあった。
XULアプリの完成品だけど、リモートサーバの操作のために作られている。
jar:URLリンク(www.anisolution.com)

しかしリモートはどうでもいいので、ローカルのファイルマネージャーが欲しい。
これを、firefoxのextentionにパッケージングしなおすのって、extention作ったことあるレベルだったら、
簡単だと想像するんだが、あっているかな?
自分が理想とするのは、ツリーの部分は分離してサイドバーに入れる。そこから複数のTABコンテンツで中身表示という仕様。

632:デフォルトの名無しさん
06/02/12 18:47:45
>>611
URLリンク(eclipsexul.sourceforge.net)
これか。ポトペタとはいかんが。
autocomplete はしてくれるようだが、XUL のみかな?(JS は駄目?)

633:デフォルトの名無しさん
06/02/12 19:38:58
昔Moz2ch関係のサイトでIDEっぽいのがあったよーな記憶が無きにしも有らず

634:デフォルトの名無しさん
06/02/12 19:42:28
URLリンク(xul-app.hp.infoseek.co.jp)
あったあった。開発終了しちゃったのね。

635:デフォルトの名無しさん
06/02/12 22:19:48
>>631
ローカルに書き換えるのは素人では難しい
拡張作ったことがある人でも面倒臭いかもね
まぁローカル鯖立てて動かせってこった

636:デフォルトの名無しさん
06/02/15 00:28:48
ボタンのラベルを複数行で折り返して表示させることはできませんか?

637:デフォルトの名無しさん
06/02/15 11:58:16
<button>
<description flex="1">
ラベルラベルラベルラベルラベルラベル
</description>
</button>

とか?

638:デフォルトの名無しさん
06/02/15 21:38:42
>>636
XBLでゴニョゴニョすればすればできるんじゃない

639:デフォルトの名無しさん
06/02/17 00:54:21
XPCNativeWrapperについて教えてください。
一応mozilla.orgのドキュメントは読み流したのですが、なぜそれが必要なのかがいまいちわかりませんでした。

640:デフォルトの名無しさん
06/02/17 20:50:43
>>639
URLリンク(piro.sakura.ne.jp)

641:デフォルトの名無しさん
06/02/18 15:55:05
「XUL + BeanShell = Swing-XML Authoring Tool 0.5.0」
URLリンク(pcweb.mycom.co.jp)

642:デフォルトの名無しさん
06/02/22 21:24:35
C++でXPCOMを作成する時の補助ツール(Linux用、ソース付き)。間違ってる所があるかもしれません。
URLリンク(nazodane.hp.infoseek.co.jp)

643:デフォルトの名無しさん
06/02/23 21:22:26
XULRunner 1.8.0.1ってサンプルアプリのMyBrowserが動かなくね?

644:642
06/02/23 22:18:32
>>642のやつ、Windowsにも対応させました。

645:蕪木ら某 ◆Googl8RmwA
06/02/23 23:19:50
>>643
URLリンク(bugzilla.mozilla.org)
x

646:デフォルトの名無しさん
06/02/25 03:17:45
RDFデータソースからテンプレートで要素を生成するときに再帰的に生成させない方法はありますか?
<rule iscontainer="true">でコンテナを除外することはできますが、一階層まではコンテナも表示させるようにしたいのです。

647:デフォルトの名無しさん
06/03/02 10:01:57
JavaScriptいらず? XUL + Javaでリッチアプリケーション - ZK 1.0.0登場
URLリンク(pcweb.mycom.co.jp)

648:デフォルトの名無しさん
06/03/03 23:54:42
設定ダイアログで同じドロップダウンメニューを使用するので、この部分のUIをまとめてオバーレイで適応したいのですが、可能なのでしょうか?
具体的には<menulist>タグには設定を拾うために固有のIDをつけるので、<menupopup>以下をオバーレイで適応できればと思っています。



649:デフォルトの名無しさん
06/03/04 18:14:30
IEのお気に入りからデータをインポートするために
フォルダパスを取得したいのですがどうしたらできるでしょうか?

650:デフォルトの名無しさん
06/03/04 21:11:42
>>649
URLリンク(mb.eschew.org)
var service = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties);
var path = service.get("Favs", Components.interfaces.nsIFile).path;

651:649
06/03/04 22:02:01
>>650
うお~マジでありがとうございます。
めちゃくちゃ助かりました。
ProfDとかは知ってたんですが、こんなに沢山あったんですね。
参考にさせてもらいます。

652:デフォルトの名無しさん
06/03/08 10:49:33
XULRunnerサンプルのMyBrowserで、画像を読み込まないように
するには、どうすればいいの?
advanced.always_load_images
network.image.imageBehavior
どっちも効かなかった。

653:デフォルトの名無しさん
06/03/08 15:46:11
permissions.default.image を 2 かな (see greprefs/all.js)

654:652
06/03/08 21:33:57
>>653
効かなかった

655:デフォルトの名無しさん
06/03/08 22:40:38
browser要素のdocshell.allowImagesをfalseにする手は?

656:652
06/03/09 08:25:50
>>655
効いた。
サンクスコ

657:デフォルトの名無しさん
06/03/09 23:35:58
Firefox のプラグインで驚いたこと:
どう考えてもFirefoxの内部構造に入りまくったプログラミングなのに、
なんか、C++とかぜんぜん使ってなくって、全部JavaScriptっぽい。
ここで質問。
1、この解釈は正しい?それとも、もしかして、どこかでC++を使いまくり?
2、C++で書くことにより、よりFirefoxの内部構造に深く立ち入ったプラグインを作ることは可能?


658:デフォルトの名無しさん
06/03/09 23:40:01
追加:
3、プラグイン(エクステンション)のコーナーって、機種の表示がないんだけど、
プラグインはOSに依存しないの?
4、なぜか、JSはインタプリタなのに、
プラグインのロードのときに、セキュリティの危険の警告があるよね。
C++のEXEならわかるけど、なぜJSでこの警告?


659:デフォルトの名無しさん
06/03/09 23:58:58
>>657
プラグインじゃなくてエクステンションの話だとして回答.

1. 公開されているエクステンションのほとんどがXULとJavaScriptと
その他の素材(CSS,画像ファイル)で構成されています.

2.Firefox の内部構造に立ち入るだけならばXULとJavaScriptで
ほとんどできます.むしろFireFox内部に存在しない機能を実装したい
場合にはC++でXPCOMを書く必要がでてきます.

660:デフォルトの名無しさん
06/03/10 00:02:51
>>658
3. XULとJavaScriptで書いている分には処理系に依存しません

4. エクステンションの場合はHTML上で動くJavaScriptと異なりローカルPC
のリソースに自由にアクセスできます.ファイルを消したりするエクステンションも書けて
しまうのでEXEと同じだけ危険なものが書けます.これで警告が出なかったら変でしょ?

661:デフォルトの名無しさん
06/03/10 00:15:16
>>657
誤解するといけないから説明しとくと FireFox には C++ で書かれたコンポーネント
が一杯あってそれを JavaScript やXULから利用しています.FireFox組み込みの
コンポーネントの組合せで作れる範囲の処理ならOS依存のコードは必要ないってことです.

662:デフォルトの名無しさん
06/03/10 00:47:25
クンクン

663:デフォルトの名無しさん
06/03/10 13:53:06
こんなところにまでプラグインと呼ぶ人がくるようになったのか・・・
窓の社の罪は重いな。

664:デフォルトの名無しさん
06/03/10 14:48:04
よくやったw > 社

665:デフォルトの名無しさん
06/03/11 00:28:49
Piro たんが釣れた!

666:デフォルトの名無しさん
06/03/12 21:08:38
browser要素のエラーハンドラを自前のやつに取り替える
方法ってあるの?
connection refusedのダイアログが出るので困ってる。

667:デフォルトの名無しさん
06/03/13 15:19:55
search engine を javascript で変えるにはどうしたらいいでしょうか。

mouse gesture のカスタム機能を使って、
ジェスチャーによって検索するエンジンをかえてみたいんですが、
ジェスチャーでセレクションを検索するまではできたものの、
エンジンの種類を変える方法がわかりませんでした。

668:657
06/03/13 21:58:04
>>659-661
わかりやすい解説、サンクス!。
なんか雰囲気は掴めたっぽい。

>>663
プラグイン = C++とかで書かれた外部プログラム。フラッシュとかアクロバットとか。
エクステンション = XUL/JavaScript で書かれたある種のマクロみたいなの。
・・・これでOK?
確かに、私も、「窓の杜」の「「Firefox」プラグイン特集」を読んでました。
すんまそん!。



669:657
06/03/13 22:02:36
ひとつ質問:
いまの個人的解釈だと、
1、Mozilla System (と呼んでいいのか?)とも呼べるものがある。
2、これは、XUL/JavaScript の実行環境で、XUL Runner とほぼ同じ。
3、その上で、重量級ブラウザスクリプトを走らせているのが Mozilla。
 軽量ブラウザスクリプトを走らせると Firefox。
 メーラスクリプトを走らせているのが ThunderBird。

・・・なにが聞きたいかというと、
Thnderbird/Firefox/Mozilla は、専用コンポーネントを使っているのか、
それとも、XUL/JavaScript のみなのか、ということ。
とりわけ、Thunderbird に専用コンポーネントがないとすれば、
かなり驚きなんですが。
それって、ようは、ブラウザにカスタムマクロを突っ込めばメーラになるよ、ということなんで。


670:デフォルトの名無しさん
06/03/13 23:35:51
>>669
1は、一般的にはGeckoと呼ばれてる。
2と3は、まあそんな感じ。

GeckoはXUL/JavaScriptの実行環境だけど、C++で書かれた
DLLやなんか(=XPCOMコンポーネント)の機能も呼び出せる。
FirefoxやThunderbirdの固有の機能のいくつかは、JavaScriptではなく
あらかじめ用意されているXPCOMコンポーネントで実現されてる。
C++やJavaを使えば(JavaScriptでもできるけど)XPCOMコンポーネントを
自作することもできる。
Thunderbirdの機能に必要なXPCOMコンポーネントを持ってくれば、
理論上はFirefox上でもThunderbirdは動く。
大筋においては、
>それって、ようは、ブラウザにカスタムマクロを突っ込めばメーラになるよ、ということなんで。
は、まあ正解と言える。


671:デフォルトの名無しさん
06/03/13 23:52:42
>> 669
Firefox と Thunderbird 両方インストールして,入ってるDLLを
比べてみればすぐ mozMapi32.dll ってのが怪しいって解るんじゃない?
ってことで Thunderbird はネイティブコンパイルされたメール操作用の
コンポーネントを持っていてそれをXUL/JavaScriptから操作してる.

672:デフォルトの名無しさん
06/03/17 00:17:30
なんだかショッキングだ。
そういうトリッキーなことするのを見るとパフォーマンスが気になる。

673:デフォルトの名無しさん
06/03/17 00:26:41
何がトリッキーなのかワカラン

674:デフォルトの名無しさん
06/03/17 00:27:48
そんなこといってたら
抽象化されたデバイスを利用してる
アプリケーション全部使えなくなるよ。

675:デフォルトの名無しさん
06/03/17 00:30:35
>>672
おまえの存在がトリッキー。

676:デフォルトの名無しさん
06/03/17 00:34:02
しまじろうに出てくるキャラのことだろ

677:デフォルトの名無しさん
06/03/17 00:41:44
セガの古いゲームのことだろ

678:デフォルトの名無しさん
06/03/17 07:43:44
それフリ(ry

679:デフォルトの名無しさん
06/03/17 10:58:06
firefoxのプラグイン開発の資料はどこにあるのでしょうか?
また、参考になるサイトがあれば教えてください。

680:デフォルトの名無しさん
06/03/17 11:17:18
>>679
URLリンク(hp.vector.co.jp)

681:デフォルトの名無しさん
06/03/17 19:02:18
個人で作るならプラグインじゃなくて拡張がいいよ
拡張の作り方はこの本買え。
URLリンク(www.amazon.co.jp)

682:デフォルトの名無しさん
06/03/17 19:16:45
拡張作るのに向いてる日本語のレファレンス本ってありますか?
DOM, XUL, XPCOM あたりの概要が書いてあるようなやつ。

上の本と
Firefox Hacks
URLリンク(www.amazon.co.jp)
くらい?


683:デフォルトの名無しさん
06/03/17 19:24:51
リファレンス的なものはないんじゃないかな?
JavaScriptとかDOMとかCSSとかXPCOMとか必要知識が多岐にわたるから
どうしても表面的なところをなぞった物になってしまうような。


684:デフォルトの名無しさん
06/03/17 20:04:52
まあでもウェブ開発者なら前三つはどうせ知ってないといけないから
あとはXPCOMとの連携=XULだけなんだけどね。

URLリンク(firefox.geckodev.org)
サンプルもめちゃくちゃ豊富にあるしそんなに難しいもんじゃないよな。
本なんて英語の読めないやつ専用だろ。

685:デフォルトの名無しさん
06/03/17 20:21:39
FFのプラグインの作り方を教えてください。

686:デフォルトの名無しさん
06/03/17 20:34:20
そういわれるとキラウェアを思い出すけど、
多分この板でこの意味が分かる人はいない。

687:デフォルトの名無しさん
06/03/17 21:14:51
>>685
URLリンク(www.square-enix.com)
ここに就職して、書かせてもらえ。

688:デフォルトの名無しさん
06/03/17 22:12:02
>>686
ハワイで作った駄作映画のこと?

689:デフォルトの名無しさん
06/03/17 22:57:39
でも気軽に作れないってのは痛いよな。
「俺は作れるからいい」ってのは普及・発展を阻害してると思う。

690:デフォルトの名無しさん
06/03/17 22:59:26
それなら Gauche を使わないと

691:デフォルトの名無しさん
06/03/17 23:11:50
>>688
ご名答。

>>689
Mozillaとかなんかその辺の連中の思考回路はそんな感じに見えて仕方ない。
永久に普及しないし、自己満足なんだからいいんじゃね?

692:デフォルトの名無しさん
06/03/17 23:59:09
今でも十分気軽じゃないか。
学習のためのドキュメントは不足してると思うが。

693:デフォルトの名無しさん
06/03/18 00:16:20
英語でも無いのか?
なら、儲けた数十億円使えば良いのに。

個人用に拡張ををちょこっと作るくらいなら、あまり困らなかったけど。
もっとも、最近は Greasemonkey のが多いな。

694:デフォルトの名無しさん
06/03/18 04:27:43
英語のドキュメントがあればOKってのは世間一般的には全然気軽じゃないんだよな。
そういうのを書くのがコード書くより面倒ってのは痛いほど分かるが。

695:デフォルトの名無しさん
06/03/18 04:58:02
日本語のドキュメントがあればOKな世間よりは広いお

696:デフォルトの名無しさん
06/03/18 11:55:31
いや、MJ に期待するのはアレだし、いきなりローカル言語に期待できないから。
こういうのは、訳を作ってくのが定石でしょ。
待ってたら何年先になるか分からないから、英語で慣れた方が(ry (以下ループ)
まぁ、多くの人には気軽じゃないのは確かだねぇ。

> 本なんて英語の読めないやつ専用だろ。
原本買う人も多くね? 一長一短。

697:デフォルトの名無しさん
06/03/18 15:31:19
気軽に作れるって範囲は「Firefoxの改造テクニック!」で
大体カバーしてると思う。

入ってないのは
Templete
nsITreeView を使う Tree や list
nsIHttpChannel などの Channel の使い方。
socket
docShell 全般(部分的に入ってる)
JS による xpcom component の作り方。
この辺だけど、全然気軽じゃないところだし。

698:デフォルトの名無しさん
06/03/18 17:36:57
拡張の権限で javascript をインタラクティブにテストできる
拡張ってないですか?
emacs の lisp-interaction-mode みたいな。

699:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 19:22:56
64bitに対応したトリップ検索プログラムありますか?

TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

700:デフォルトの名無しさん
06/03/18 19:52:22
>>697
「気軽に作れる」ってのはドキュメントやリファレンス的なものだけじゃなくて、
開発環境が整ってないとかテストが面倒ってのも改善される必要があると思う。

701:657
06/03/18 20:15:23
ハッハッハ!。
Firefox Hacks と、「改造テクニック!」、この二冊の手助けにより、
さらに理解が進んだぞ。
なんか、スゲェな、FF。

ひとつ質問。
FFって、ようは、XULインタプリタ+ブラウザスクリプト、ですよね。
これ、立ち上げのたびに全スクリプトを読み直してるんですか?
・中間コードのキャッシュ
・できればコンパイル
とかの機能は、現に存在している、または開発計画は存在している、
ってことはないですかね。

XUL cache とかいうキーワードは見つかったけど、
具体的にそれが何なのかがわかりません。


702:デフォルトの名無しさん
06/03/18 21:05:20
URLリンク(bugzilla.mozilla.org)
URLリンク(groups.google.com)
とかを見ると
>XUL fast load file. Contains precompiled chrome and JavaScript.
と書いてある

703:デフォルトの名無しさん
06/03/19 14:08:48
XUL.mfl
XPC.mfl
とかあるけどね。

704:657
06/03/19 16:30:09
ええっと、そのキャッシュファイルって、どこにあります?
Linux/Windows 双方さがしたんですが見つかりません。
って、私の設定が悪いんですかね。

705:657
06/03/19 16:50:45
あ、大ボケを。
Linuxにはあった。
$home/.mozilla/firefox/asdfwq3r.default/XUL.msadf
これだね。
でも、Win32にはないなぁ。どこにあるんだろう。


706:デフォルトの名無しさん
06/03/19 19:42:32
ディフォルトなら
C:\Documents and Settings\???\Local Settings\Application Data\Mozilla\Firefox\Profiles\???\
辺りに
んで、そのファイルをテケストエディタで開いて味噌

707:デフォルトの名無しさん
06/03/19 21:38:33
ちなみにLocal SettingsやApplication Dataに隠し属性が付いてるんで
デフォルトではエクスプローラで表示されないし検索にも引っかからない。

708:デフォルトの名無しさん
06/03/20 13:14:46
初心者ですが、オライリーの「Firefox hacks」 っていう本は分かりやすいですか?

709:デフォルトの名無しさん
06/03/20 19:49:41
オライリー本は実は糞だという法則。
なんか自称上級者のステータスみたい
になってるから読まない方がいい。

710:デフォルトの名無しさん
06/03/20 21:25:58
そんな法則ないよ。

711:デフォルトの名無しさん
06/03/20 21:33:21
Firefox hacksはオライリー本の中では比較的読みやすい方だと思うよ。
ただ、知識が少し古くなってるところもあるのでそこは注意が必要。

712:デフォルトの名無しさん
06/03/20 21:39:57
XULに関しての記述は少なかったような気が。

713:デフォルトの名無しさん
06/03/21 00:23:35
>>709
縦読み乙

714:デフォルトの名無しさん
06/03/21 07:38:20
くそ、縦だったか。

715:デフォルトの名無しさん
06/03/21 23:08:06
画像の上でコンテキストメニュー呼び出したときだけ、メニューを表示させたいんだけど
document.getElementById(id).hidden = !gContextMenu.onImage
とか挟めばいいのかな?

あと、挟むんだったら何処に挟めばいいんだろう… orz。

うぉ~、なんでこんな文献少ないんだ…と愚痴る。

716:デフォルトの名無しさん
06/03/21 23:12:28
× 文献が少ない
○ 理解力が足りない

717:デフォルトの名無しさん
06/03/22 00:05:35
contentAreaContextMenuのonpopupshowingイベント

718:デフォルトの名無しさん
06/03/22 00:06:59
きっと文献を探すよりも似たようなことを実現させている拡張のソース見たりbrowser.jar見たりする方が効率よい。

719:デフォルトの名無しさん
06/03/22 11:18:50
だな。PGはソース読んでなんぼだ。

720:デフォルトの名無しさん
06/03/23 11:43:54
たとえば C-L でブックマークツールバーの表示をトグルさせたいのですが、
こういうときどうすればいいんですかね?

pref.js に何かキー割り当てのようなものを書けばいいのでしょうか?
それとも XUL をいじらないとできませんかね。

721:デフォルトの名無しさん
06/03/23 12:45:43
>720機能拡張KeyConfigを導入しる

722:デフォルトの名無しさん
06/03/23 12:53:54
>>721
ありがとうございます。すでに使っています。情報を出さずにすいませんでした。
それで、keyconfig は、pref.js に設定を書き込むことで、割り当てダイアログに
項目が出てくるようになりますよね?

user_pref("keyconfig.main.xxx_key__NAME", "!][][][FUNCTION");

上のような感じで書けばよいのだろうなぁ、というのはわかりましたが、
肝心のブックマークツールバーをどう書けばよいのかわかりません。
DOMインスペクタを使えばわかるのですか?

723:デフォルトの名無しさん
06/03/23 19:16:24
↓ここで質問しれ。ここは硬派なスレなの
Mozilla Firefox質問スレッド(初心者歓迎)の30
スレリンク(software板)

724:デフォルトの名無しさん
06/03/23 19:23:48
まあ、document.getElementById("PersonalToolbar")して
collapsedをトグルするだけなんだけどね

725:デフォルトの名無しさん
06/03/23 19:40:09
実は スレリンク(software板:274番) で質問したのですが、
反応がありませんでした…。

>>724
さすが、手厳しいですねw
ともかくヒントありがとうございます。がんばってみます。

726:デフォルトの名無しさん
06/03/23 21:57:14
keyconfigの設定画面開いて、新しいキーを追加。
名前は好きなのにして、/* CODE */の下に

var pToolbar = document.getElementById("PersonalToolbar");
pToolbar.collapsed = !pToolbar.collapsed;

と書く。んで、それにショートカットキーを割り当てるだけ。

727:デフォルトの名無しさん
06/03/23 22:54:37
>>726
できました!
う~ん、すごいなぁ。どうしたらこんなの分かるんですか??魔法みたいだ。
まだまだたくさん勉強しないとダメだ~

728:715
06/03/23 23:44:13
>だな。PGはソース読んでなんぼだ。
一理ある。
なんか納得してしまったので、もう少し頑張ってみようかと。
俺が軟弱モノでした。

729:デフォルトの名無しさん
06/03/24 13:54:16
>>727
726じゃないけど、DOMインスペクタを活用するといいよ。

730:デフォルトの名無しさん
06/03/24 21:43:50
漏れも拡張作ってみたいと思って
XULに挑戦してみたけど
プログラミングに関する知識はゼロだったんで
ソース読んでもちんぷんかんぷんだったけど
とりあえず先人の書いた良質のソースを弄ってみて
その中でわからないことが出てきたら
XUL PlanetとかMozilla Cross Referenceで調べたりするうちに
なんとなくjavascriptのオブジェクト指向も分かってきて
そうこうするうちに拡張も作れるようになちゃって
ついには窓の森のプラグイン特集に出ちゃったりみたいな。

731:デフォルトの名無しさん
06/03/24 22:08:44
そうなるまで何時間くらいかかった?

732:デフォルトの名無しさん
06/03/24 22:12:04
何そのサクセスストーリー

733:デフォルトの名無しさん
06/03/24 22:16:06
俺も最初は TabMixPlus とかメジャーなやつをほどいて
サイト見ながらいろいろいじってるうちにいつのまにか
わりと思い通りに書けるようになったな。

>>731
完全な素人なら、少なくとも1週間くらいはかかるんじゃね?

734:デフォルトの名無しさん
06/03/24 22:32:48
XULPlanet ってさ、リファレンスは充実してるんだけど、
サンプルコードがぜんぜんないじゃん。
Rapid Application Development with Mozilla も同じ形式。
もちろん、各種エクステンションのソースそれ自身がいいサンプルコードなんだけど、
MSDNとかのMFC/Win32あたりだと、API一個一個に、
リファレンスドキュメント+サンプルコード、といった形式になってるでしょ。
こういった感じの、サンプルコードばりばりの資料ってどっかにないかな、、、。

ちなみに、いまは、「改造テクニック」で勉強中。


735:デフォルトの名無しさん
06/03/24 22:43:46
言えてる。ちょっと初学者には厳しい世界かもしれない。
てか、XULは他の畑である程度腕に覚えのある連中が
手を出すものじゃないかと。

736:デフォルトの名無しさん
06/03/24 22:48:30
javascript は覚えたんだけど
肝心の firefox の内部構造がよくわかんないんだよな。

737:デフォルトの名無しさん
06/03/24 23:09:04
>735
Javaやらがそうだったように
新しいモノに飛び込んで、好きで弄り回した上で得たノウハウを
人に広めていくことで、技術って言うのは馴染んでいくモノだから

マニア、ギーク、アーリーアダプタ名乗るなら
ゆっくり陳腐化させていこうぜ

…何年かかるか分からないけど

738:デフォルトの名無しさん
06/03/24 23:33:47
なんとなく拡張作ってみたいって感じじゃ良いものは作れないし
自分のスキルもなかなか伸びないけど
「どうしてもこの機能が欲しい!」というのが先にあって
その欲望の実現に向かって努力するといいんじゃないかな
ちょっと目標を高めに設定する方がいいね

739:デフォルトの名無しさん
06/03/25 00:14:49
動機はある程度不純な方が伸びやすいよな。
欲望とかに直結してると人間っては動く動くw

740:デフォルトの名無しさん
06/03/25 09:56:52
「勉強しよう」とか思ってるやつは
大して伸びないよな。

好きでいじってるレベルにならないと。

741:デフォルトの名無しさん
06/03/25 10:29:34
>>739-740
同意

742:デフォルトの名無しさん
06/03/25 15:23:31
だが勉強しないやつよりは大分伸びるので問題無し

743:デフォルトの名無しさん
06/03/25 22:59:34
いや。大学にくればわかるが、勉強しようと思ってるだけの奴より
必要に迫られて勉強するやつの方があっさり身につけるし伸びる。
学生の程度の低い大学だとどうか知らんが。
勉強しようと思ってるだけでなかなか動かない奴ってのは
勉強しようと思う自分に酔ってることが結構ある。
本を買っても積んどくだけとかに似てる。



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