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


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

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



1 名前:デフォルトの名無しさん mailto:sage [04/12/05 00:09:18]
オラ拡張作る。

前スレ
Mozillaでプログラミング(XUL)
pc5.2ch.net/test/read.cgi/tech/1019704370/

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++専用のインターフェースなの?






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

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

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