1 名前:デフォルトの名無しさん mailto:sage [04/12/05 00:09:18] オラ拡張作る。 前スレ Mozillaでプログラミング(XUL) pc5.2ch.net/test/read.cgi/tech/1019704370/
321 名前:320 mailto:sage [2005/04/10(日) 11:23:45 ] >>319 お、すげ…
322 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 12:41:42 ] >>319 まともに動くのが無い・・・orz
323 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 01:47:21 ] これってブラウザの外に窓開いて独立したアプリを作ることもできるの?
324 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 14:40:19 ] >>323 ブラウザ自体XUL+JavaScriptで記述されてますから。
325 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 15:18:16 ] XULRunnner がそれじゃない? 使ったことないから知らないけど。
326 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 16:54:56 BE:113346465- ] >>323 XULRunner ftp.mozilla.org/pub/mozilla.org/xulrunner/
327 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 22:44:25 ] baniisan.s12.xrea.com/x/pukiwiki/pukiwiki.php?XUL%20Runner%A4%D8%A4%CE%C2%D0%B1%FE%A4%CE%A5%E1%A5%E2 にあるやつでちょっといじってみるとか
328 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 23:52:09 ] >>323 できます。 Firefox内でも、「ブックマークの管理」ダイアログやDOMインスペクタ、 設定ダイアログ、拡張機能の管理ダイアログなどが 「ブラウザの外に窓開いて独立したアプリを作」った例と言えます。
329 名前:デフォルトの名無しさん mailto:sage [2005/04/12(火) 00:04:05 ] -chrome引数付けて開けば単独で開けたはずだし
330 名前:デフォルトの名無しさん mailto:sage [2005/04/13(水) 19:27:52 ] JSでもXPCOM作れるらしいけど実際使われてる拡張ほとんど見ない… 使いまわしだとかバージョンによるバッティングとかどんな感じになってるの? ttp://nazodane.hp.infoseek.co.jp/xpcom/xpcom.xhtml
331 名前:デフォルトの名無しさん mailto:sage [2005/04/14(木) 04:01:22 ] >>330 adblock とか livehttpheaders とか結構使ってるよ。
332 名前:デフォルトの名無しさん mailto:sage [2005/04/14(木) 06:08:00 ] amb.vis.ne.jp/mozilla/scrapbook/index.php?lang=ja 作者オメ
333 名前:デフォルトの名無しさん mailto:sage [2005/04/14(木) 16:42:08 ] >>331 あくまでもスキーマ登録とか処理介入じゃん。 xptを含むのってほとんど無い…
334 名前:デフォルトの名無しさん mailto:sage [2005/04/14(木) 17:14:55 ] XULRunnerのWindows版ナイトリキター
335 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 16:54:27 ] + テキスト ├テキスト └テキスト ↑ ツリーのこの部分の幅を調節するにはどうすればよいのでしょうか?
336 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 16:59:20 ] ::-moz-tree-indentation xulplanet.com/tutorials/xultu/treestyle.html
337 名前:335 mailto:sage [2005/04/16(土) 17:02:53 ] >>336 ありがとうございます。それは試しましたがtree-lineの上に上書き?されてしまいます。 出来ればtree-lineは残した状態で調節したいのです。 ちなみにこう書きました。 treechildren::-moz-tree-indentation { width: 0px; }
338 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 19:25:23 ] Fx1.0.3でfocusedWindow.__proto__.getSelection.call(focusedWindow)が使えなくなって ちょっとした祭りになってるけど、そもそも__proto__ってどういう意味なの? ttp://developer-test.mozilla.org/docs/Safely_accessing_content_DOM_from_chrome#Do_not_use_the___proto___trick
339 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 19:29:38 ] >>338 prototype
340 名前:デフォルトの名無しさん mailto:sage [2005/04/19(火) 12:17:05 ] リリースバージョンが上がるたびに互換性の問題で動かない拡張が山のように出るな
341 名前:デフォルトの名無しさん mailto:sage [2005/04/20(水) 17:52:53 ] もっとライブラリ化しまくって中間ライブラリで対処できるようにするべきだと思うんだけど…
342 名前:デフォルトの名無しさん [2005/04/28(木) 00:09:26 ] Firefox専用の拡張をMozillaで使えるように改造とかできますか?
343 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 00:14:35 ] 場合による。
344 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 03:18:28 ] >>338 [[Prototype]] ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/8_Types.html#section-8.6.2 prototype は [[Prototype]] じゃない。
345 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 18:17:20 ] ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-3_Function_Objects.html#section-15.3.3
346 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 23:02:01 ] Compound XML Document Editor: XUL Demo dl.alphaworks.ibm.com/tech/cxde/viewlets/xul/xul.viewlet/xul_viewlet_swf.html Compound XML Document Editor www.alphaworks.ibm.com/tech/cxde from wiki.mozilla.org/XUL:IDE
347 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 09:41:57 ] IDEっつか、CVSとかがついた統合環境にならんかなぁ
348 名前:デフォルトの名無しさん mailto:sage [2005/05/08(日) 22:44:58 ] Arrayが拡張された https://bugzilla.mozilla.org/show_bug.cgi?id=290592
349 名前:デフォルトの名無しさん mailto:sage [2005/05/09(月) 04:50:03 ] これってECMA Scriptの仕様にもある機能なの?
350 名前:デフォルトの名無しさん mailto:sage [2005/05/09(月) 06:04:51 ] パッと見 Ruby っぽい? Ruby にもメソッド新設されないかなぁ
351 名前:デフォルトの名無しさん mailto:sage [2005/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 区別できるようにして欲しいなぁ https://bugzilla.mozilla.org/show_bug.cgi?id=62485
352 名前:デフォルトの名無しさん mailto:sage [2005/05/09(月) 18:40:25 ] 個人的には大文字を使うのが気持ち悪いんだが、 これもJAVA風味ってことかねぇ。
353 名前:デフォルトの名無しさん mailto:sage [2005/05/09(月) 18:51:10 ] あー、でもよく考えたら、charAtとかもインターキャップか… ECMAとの違いもここに書いてあるね。 developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array
354 名前:デフォルトの名無しさん mailto:sage [2005/05/09(月) 20:18:57 ] しかし、javascript1.5の準拠バージョンが1.8b2になってしまったな。 1.8finalを出せるとよかったんだが…
355 名前:デフォルトの名無しさん mailto:sage [2005/05/09(月) 22:49:42 ] indexOfがあるならlastIndexOfもほしいような気がするけど実際には使わないかな? にしてもforEachとかmapとかArrayだけじゃなくって普通のObjectにもほしいな。 大文字小文字という点ではStringのsubstringとsubstrだけが例外なのかな?
356 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 00:17:18 ] "substring"で一単語なんじゃないかな。
357 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 00:46:48 ] あっ、ホントだ。sub stringじゃなかったのね。 substring 【名】 サブストリング、従属文字列{じゅうぞく もじれつ}、部分列{ぶぶん れつ} (スペースアルク英辞郎より)
358 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 23:01:48 ] 新しいウィジット<prefwindow/>の解説。 forums.mozillazine.org/viewtopic.php?p=1450063 prefいじりが簡単で見やすくなった… が、applyボタンがついてないのってUIとしてどうよ? 最近の設定ダイアログだと大抵あるのに、 firefoxは随分遅れているような気がする。
359 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 00:59:08 ] >>358 の Applyボタンに関して追記 WindowsビルドにはApplyボタンは付いています。UnixビルドとMacビルドにはありません。 例えば、unixビルドはGnome HIGに合わせる形でInstant ApplyスタイルになったためApplyボタンがありません developer.gnome.org/projects/gup/hig/2.0/windows-utility.html#windows-instant-apply ただ、このスタイルが嫌いならばuser.jsに user_pref("browser.preferences.instantApply", false); のように設定すればApplyボタンが「復活」するので、好みのスタイルで使えます。つか、そうしています。
360 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 03:08:36 ] また Gnome HIG か。 悪い方向にしか働いてないんじゃないか? 俺、Gnome なんて使ったことないし。fluxbox で十分。
361 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 03:41:46 ] 入門のための書籍もしくはwebサイトはありませんか?
362 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 04:37:55 ] >>8-12
363 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 16:49:21 ] > 359 Win の beast(tinderbox 最新) trunk だと Option ダイアログに OK と Cancel しかない。 browser.preferences.instantApply を true にすると Close だけになる。 何か操作間違えてるかな、Theme はデフォルト。
364 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:01:39 ] >>363 lxr.mozilla.org/mozilla/source/toolkit/content/widgets/preferences.xml#472 を読んだ感じではそういう実装だね。 ダイアログがモーダルなら、applyボタンの出る幕はないし、 そうでないなら、InstantApplyにしとけ、ってコトなんだろう。
365 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:21:00 ] >>361 Mozilla拡張の作成 firefox.geckodev.org/?%B3%C8%C4%A5%A4%CE%BA%EE%C0%AE#mf95723f つまりは、hello、worldまでの準備。 これじゃあ、ダメかな、自分は、ココのおかげでスタートを切れた あとは、このスレの最初の方のリンクを頼りに頑張らないといけないと思う
366 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 18:20:13 ] >>365 それは既に時代遅れになってる。
367 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 22:18:57 ] ttp://weblogs.mozillazine.org/roc/archives/2005/05/rendering_web_p.html おもすれー
368 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 20:49:33 ] Dive Into GreaseMonkey ttp://diveintogreasemonkey.org/toc/ すごいね〜
369 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 20:54:09 ] Greasemonkey compiler ttp://www.letitblog.com/greasemonkey-compiler/ で、こいつで userScript を Firefox の拡張 xpi に変換する。
370 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 22:03:11 ] いろんなリモートXULアプリが公開されている。 www.georgenava.com/applauncher.php
371 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 23:23:13 ] >>366 最新情報はいったいどれなの?
372 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 12:14:27 ] どれ、って言われてもなぁ。 (いろんな人の)脳内としか言いようがない。 まだ1.1が出てないうちは、あれでいいのかもしれないが、 今から拡張の書き方を覚えるなら、contents.rdf云々を覚えるのは無駄。 賞味期限があと一日しかない牛乳を買うような感じ、とでも。
373 名前:デフォルトの名無しさん [2005/05/24(火) 02:39:00 ] ユーザーにプログラムを配布するときはどうすればいいの? クラスが登録されていませんと出て、実行できないのですが・・・。
374 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 02:50:04 ] >>373 もうちょっと詳しく。
375 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 03:03:45 ] homepage2.nifty.com/spw/tips/Gecko.html ここにある、実行ファイルを実行すると、Mozilla ActiveX Controlがインストールしてある環境では うまくいくのですが、そうでない別のパソコンでは上記のようなエラーが出ます。 ともにfirefoxはインストールしてあります。 Mozilla ActiveX Controlは必ずインストールしなければならないのでしょうか? それともregsvr32 を使って何かを登録すればよいのでしょうか?
376 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 13:23:22 ] >>375 それは、ActiveXを使うかどうかに拠ります。 ActiveXの本質はMicrosoftのコンポーネントオブジェクトモデル(COM)ですよね。 ActiveXを使うなら、Mozilla ActiveX Controlが必要になりますが、 そんなものをインストールしてあるFirefoはかなりの少数派です。 ただ単に自分のアプリケーションでGeckoを使いたい場合は、 rcl.hp.infoseek.co.jp/pub/gecko_old/geckosdk/Minimum.html を参考にしてください。 80行程度の短いプログラムですが、きちんと動きます。 コンパイラ(MS Visual Studio)を持ってないなら、 blue.sakura.ne.jp/~junnno/mozilla/ が参考になるかと思います。
377 名前:デフォルトの名無しさん [2005/05/24(火) 17:06:00 ] 自作のJava XPComオブジェクトを呼び出す(By LiveConnect)Firefoxプラグインの作り方を 紹介しているようなページをご存知な方いらっしゃったら、教えてもらえませんか? Javaでなくて、自作XPComだけでもかまいません。 ここのスレッドでも紹介されているようなサイトを色々見ながら試行錯誤しているのですが なかなか痒いところに手が届く情報が手に入りません。 今は、 simile.mit.edu/piggy-bank/index.html を解析しながら試しているのですが、規模が大きすぎて。
378 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 18:25:28 ] >>377 プラグインというのはいわゆるプラグインではなく、拡張のことですよね? Firefoxは拡張として独自のXPCOMを付加するのが以前に比べて*かなり* 簡単になっているので、こちらの方はお薦めです。 一方で、以前はプラグインに自作のXPCOMをつけるのは当たり前でしたが、 今はnpruntimeがあるので無理にXPCOMを書く必要はありません。 やや、難解です。 が、ここにその古いXPCOM付きのころの解説があります。 web.archive.org/web/20041113045157/cgi29.plala.or.jp/mozzarel/plugin/buildplugin/buildplugin_ja.html npruntime版もプラグイン自体は書きあがって私のFirefoxで動いていますが、説明までは出来ていません。 (というか、ぷららを解約してしまったのでどこで公開するかも決めてないのですが…) >>378 が紹介してくれた80行のプログラムでも何度もXPCOMが呼び出されているので、 呼び出しが難しい、なんてことはないですよね? どのへんのことを知りたいのでしょうか? 基本的な作り方の手順は、 1. idlを書く。 2. idlをコンパイルして、.xptと.hを手に入れる。 3. .hに書いてあること参考にc++で実装する。 4. それをコンパイルしてdll(linuxならso?)に出力する。 という感じです。 どのへんで詰っているのでしょうか? 多分、誰かが参考リンクとして、 www.mozilla.org/projects/xpcom/book/cxc/html/index.html を挙げてくれると思いますが、これはやや遠回りしすぎな感じがします。
379 名前:デフォルトの名無しさん [2005/05/24(火) 18:36:43 ] >> 378 はい、拡張でした。 XPComに関して、呼び出しはまったく問題ないのですが、 idlにインターフェイス定義してから先、どうやってコンパイルするのか、 どこにxptファイルを置くのか、どのような仕組みでdllがロードされるのか という点が分かっていません。 情報ありがとうございます。調べてみます。
380 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 19:21:23 ] >>379 とりあえず、Gecko SDKを入手してください。 ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.8b1/gecko-sdk-i586-pc-msvc-1.8b1.zip すると、xpidl.exe(だっけ?)が入っているので、 それをDOS窓等から使います。 www.mozilla-japan.org/scriptable/xpidl/ 例えば、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をインクルードしてやれば、 コンパイラとリンカは通ります。 ですから、変数名をいじって肉付けすれば半分完成です。 残りの半分は登録です。 lxr.mozilla.org/mozilla/source/xpcom/sample/nsSampleModule.cpp を参考におまじないを書くのが一番分かりやすいと思います。 今は何のことかわからなくても、 とりあえずsampleという名詞を自分のクラスの名前と置換しておけば あとは、マクロがうまくやってくれる、はずだと思いますが…
381 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 21:26:25 ] >>367 これ試せた人います?
382 名前:デフォルトの名無しさん [2005/05/25(水) 01:05:54 ] Sageの様にブックマーク内の特定フォルダを取得したくて苦戦中っす。 bookmarks-menuをDOMで掘ろうとしても、「このページをブクマ」等しか取得できなかった。 とりあえず、XUL上でRDF & template でブクマ全体をメニュー化するところまではいったんだけど、 特定のフォルダのみ表示ってruleでいけるのでしょうか? RDFをDOM形式に変換できれば簡単なのに・・・
383 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 01:20:40 ] >>382 RDFのXPCOMだけで掘り進めるので、慣れれば簡単ですよ。 ちなみに、rdfをdomにするのは当然可能なんですが、却って 扱いづらいのは請け合いです。なんたってRDFですからね。
384 名前:デフォルトの名無しさん [2005/05/25(水) 03:49:17 ] >>383 ありがとうございます。XPCOMを調べておぼろげながら理解してきました。 OOPとDOM操作さえできれば拡張作れると思ってたけど、勉強することいっぱいありますね。 RDFっていうのは、RDFインターフェースを実装してて ファイルはXMLっぽいけどAPIは別物なわけですね。 bookmarkはnsIRDFDataSourceを実装してるから、 GetSourceか、GetTargetあたりにフォルダ名やフォルダIDをパラメータで渡して 対象のノード(?)を取得して、templateに流し込む。 こんな認識でOKでしょうか? 勘違いだったらごめんなさい。
385 名前:デフォルトの名無しさん [2005/05/25(水) 12:51:40 ] >> 380 できました。ありがとうございます。 今度はJavaのプログラムをバックエンドで動かすため、 npruntimeにトライしてみます。
386 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 19:43:49 ] >>385 どういう状況を想定しているのかわかりませんが、 npruntimeはおよそ役に立たないと思います。 javaを使うだけなら、普通のjava pluginでいいような気がするし。
387 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:42:48 ] >>387 jarプロトコルで読めます。
389 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 18:57:44 ] 強制的にサイドバーを開かせたいんですが、 そういう関数はありますか? toggleSidebar() じゃなくて openSidebar みたいな。 あるいは、 サイドバーが閉じてることを調べる方法でもいいんですが。
390 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 20:15:31 ] >>389 toggleSidebarの実装を見れば分かります
391 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 21:24:17 ] どうもありがとうございます。 toggleSidebar みたら forceOpen オプションがありました。 toggleSidebar(aCommandID, forceOpen)
392 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 06:37:04 ] Greasemonkeyスクリプトについての質問はOKですか? document.bodyにappendChildすると分裂してしまうのですがこれは何故でしょうか pc8.2ch.net/test/read.cgi/software/1115991828/587 これを使うと、bgsound1個に対し2個embedが追加されてしまいます (DOMインスペクタや選択範囲のソースを表示では1個しかembedはないのですが) 実質document.bodyにappendした時も、最後のノードが分裂することがあります pc8.2ch.net/test/read.cgi/software/1115991828/601 neugierig.org/software/greasemonkey/unembed.user.js
393 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 16:30:13 ] embed.nextSiblingが存在しない
394 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 18:20:41 ] Greasemonkeyってヘッダじゃなくて、bodyにスクリプトを足してるのか?
396 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 19:09:29 ] わからないなら、xpathやめてdomのを使っとけばいいんじゃない? ああいうfor文を書いてカッコいいとか思ってるんなら止めはしないけど。
399 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:06:56 ] javascript:(function(){h=document.createElement('a');h.href='www.google.co.jp '; h.appendChild(document.createTextNode('google'));document.body.appendChild(h)})() こんな bookmarklet を試して見ると分裂は起きない。 Greasemonkey が二度 appendChild してる可能性がある。 一度 bookmarklet で試してみて Greasemonkey の問題か Script の問題か 切り分けるのが先決か?
400 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:10:01 ] >>398 あのfor分はUnembedのパクリですが、問題はそこじゃないと思うんですが・・・ getElementsByTagNameでも同じです というかdocument.body.appendChild()すると分裂するんです (function(){document.body.appendChild(documen.createTextNode(document.body.innerHTML));})(); 例えばこのスクリプトも分裂現象が起こります
401 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:11:33 ] >>399 Greasemonkeyで件のスクリプトを使ったときだけ問題が起こります 普通にscriptタグで記述すると問題はおこりません
402 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:36:48 ] じゃぁ Greasemonkey の問題でしょ。 greasemonkey.mozdev.org/authoring.html の Tips の最初を見ると onload の前に userScript の処理をするみたいだから window.addEventListener("load", function(e) {...}, false) でやってみれば?
403 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 02:04:01 ] たまーにnsIWebBrowserPersistのsaveURIでうまく保存できない画像があるのですが、原因は何なんでしょうか??? 下記のスクリプトでcanonのロゴ画像を保存しても壊れてしまいます。 var src = Components.classes['@mozilla.org/network/standard-url;1'] .createInstance(Components.interfaces.nsIURL); src.spec = "consumer.usa.canon.com/sys/images/canon_logo.gif "; 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 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 08:16:19 ] >>400 htmlの方でそのスクリプト呼んでない? テストのために<body onload="func()">みたいにしてて、 そのままgreaseスクリプトとしても実行してるとか
405 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 09:48:26 ] >>404 alert挟んででデバッグしてみましたが1度しか呼ばれてませんでした >>402 駄目でした。setTimeoutでそれなりの時間を設定すれば分裂は回避できましたが・・・ 分裂した方はDOMインスペクタに表示されず、 選択しようとしても変なことになる (後に付いた方のテキストをドラッグして選択しようとすると何故か前の方の同じ部分が反転表示になる) のでGreasemonkeyかFirefox、あるいはGeckoのバグのような気がします どうもありがとうございました
406 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 14:06:30 ] JavaScriptでXPCOMを作ろうと思って、 ttp://lxr.mozilla.org/mozilla/source/xpcom/sample/ とか ttp://nazodane.hp.infoseek.co.jp/xpcom/xpcom.xhtml とか を参考にJSとXPTファイルを用意したんだけど、 この二つを <Profile>/extensions/{<uuid>}/components においても認識してくれない。 > reference to undefined property Components.classes['@nanto/jstest;1'] という警告が出てエラーになる。 <Firefox>/components においても同様にうまくいかないんだけど どうすればJavaScriptで作ったXPCOMを 登録する(認識させる)ことができるんだろう?
407 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 18:28:49 ] >>406 まずは、ちゃんと拡張をつくってインストールしてください。
408 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 20:49:48 ] <Profile>/ もしくは <Firefox>/components の compreg.dat と xpti.dat 一度削除した?
409 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 21:22:08 ] >>408 拡張を作っているなら、そんなトリッキーなことをしてはいけません。 ユーザーが一人もいないなら話は別ですが。
410 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 00:06:13 ] >>409 拡張作成時は compreg.dat の削除でOK。
411 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 00:22:47 ] >>410 そんな作業は必要ない。
412 名前:406 mailto:sage [2005/05/31(火) 01:20:44 ] XPIにパッケージ化してインストールしたらうまくいきました。 横着してXULDで作った拡張のディレクトリに 後からファイルを入れたのがいけなかったようです。 インストール時じゃないと登録されないのね。 アドバイスくれた人ありがと。
413 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 09:57:52 ] 拡張の ID ってどうやってつけるんでしょうか。 適当につけていいんですか?
414 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 11:34:50 ] 値が衝突しないように算出方法が決まっているので、所定のツールを使うべし。 その名をuuidgenという。 WindowsだとVS.NETやPlatform SDKとかに入っている。 LinuxやFreeBSDなどのUNIXだと標準で入ってる。
415 名前:413 mailto:sage [2005/05/31(火) 12:04:48 ] どうもありがとうございます! 手元のlinuxに入ってました。 でもどうやって重ならないことを保証してるんでしょう? 単純に巨大な数の中からランダムで選んでるから? 16^32 パターンあるみたいですね。
416 名前:413 mailto:sage [2005/05/31(火) 12:16:37 ] 過去ログでおんなじ話題出てましたね。ごめんなさい。 macアドレスと時間で一意性を求めてるらしいですね。 www.opengroup.org/onlinepubs/9629399/apdxa.htm#tagcjh_20 www.atmarkit.co.jp/icd/root/52/94084052.html
417 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 22:16:45 ] Components.classes["ぬるぽ"].createInstance(Components.interfaces.nsIガッ); でインスタンスを作るとき、nsIガッ のコンストラクタに引数を渡す方法はありますか?
418 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 02:38:31 ] >>417 無理みたい。 www.mozilla.org/scriptable/components_object.html FilePathInit = new Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath"); FilePath = new FilePathInit(path); こーゆーのはありだけど。
419 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 12:04:19 ] コンストラクタに引数とか言ってるようじゃXPCOMへの道はまだ険しいね
420 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 22:38:41 ] >>419 どーゆーこと?
421 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 23:34:32 ] >>419 道は険しくていいからnsURICheckerのmAllowHeadをPR_FALSEにして 初期化するにはどうしたらいいのか教えてくれ lxr.mozilla.org/mozilla/source/netwerk/base/src/nsURIChecker.cpp#70 引数付きコンストラクタはC++専用のインターフェースなの?