04/04/10 12:23
Slashzillaをホットキーで開けるようにしようとしているのですが
その辺のソースについて詳しく載っているサイトはありませんか?
675:デフォルトの名無しさん
04/04/10 14:15
>>674
URLリンク(xulplanet.com)
このへんの Key Example でわかるんでないかな。
Overlay してる場合はソース見ないと分からんけど、たとえば
<keyset id="(overlay する id)">
<key id="hotkey_slashzilla" key="s" modifiers="accel,shift" oncommand="<開く関数>"/>
</keyset>
こんなんで ctrl+shift+s で開くようになるんじゃないかな。
676:674
04/04/10 21:35
うーん読んでみましたが基本骨子をまだ理解しきっていないので頓珍漢なことをしているような気がして不安
szoverlay.xulのソースが以下のようになっているんですが
<?xml version="1.0"?>
<overlay id="slashzillaOverlay"
xmlns="URLリンク(www.mozilla.org)">
<!-- Sidebar Overlay -->
<menupopup id="viewSidebarMenu">
<menuitem observes="viewSlashzillaSidebar"/>
</menupopup>
<broadcasterset id="mainBroadcasterSet">
<broadcaster id="viewSlashzillaSidebar"
autoCheck="false"
label="Slashzilla"
type="checkbox" group="sidebar"
sidebarurl="chrome://slashzilla/content/slashzilla.xul"
sidebartitle="Slashzilla"
oncommand="toggleSidebar('viewSlashzillaSidebar');"/>
</broadcasterset>
</overlay>
このソース内の<!-- Sidebar Overlay -->下に
<keyset id="viewSlashzillaSidebar">
<key id="hotkey_slashzilla" key="s" modifiers="accel,shift" oncommand="toggleSidebar('viewSlashzillaSidebar')"/>
</keyset>
を埋め込んでみましたがうまくいきませんでした
idをviewSlashzillaSidebarとmainBroadcasterSetにしても同様でした
677:デフォルトの名無しさん
04/04/11 00:51
slashzilla を nightly の mozilla に入れてみたけどパネル登録ができなくて、
テストできないんだけど、たぶん…
keyset は navigator.xul の keyset に overlay しなきゃ。
DOMInspector で id 調べると navKeys になってる。
また、broadcaster 使ってるから、
URLリンク(www.xulplanet.com)
を参考にして、
<keyset id="navKeys">
<key id="hotkey_slashzilla" key="s" modifires"accel,shift" observes="viewSlashzillaSidebar"/>
</keyset>
これでどうかな。
678:677
04/04/11 00:53
modifires="accel,shift" のイコールが抜けてた、スマソ
679:674
04/04/11 02:36
すいません重要な事を書いておくのを忘れていました
使用ブラウザはFirefox0.8 4/3nightlyです
680:677
04/04/11 03:34
Firefox nightly で使えてるの?
slashzilla.mozdev.org 見て使えないものとばかり思ってた。
それはともかく Firefox なら <keyset id="mainKeyset"> にしちくり。
681:674
04/04/11 14:06
szoverlay.xulに
<keyset id="mainKeyset">
<key id="hotkey_slashzilla" key="s" modifires="accel,shift" observes="viewSlashzillaSidebar"/>
</keyset>
をoverlayのタグ内に挿入してみましたが駄目でした
また、navigator.xulを検索かけてみましたがFirefoxのフォルダ内にありませんでした…
SlashzillaですがFirefoxで問題なく使えています
Firefox Help 日本語版内の拡張内にあるSlashzillaのxpiを/.-J用に弄って使用しています
682:677
04/04/11 22:56
Firefox に slashzilla 入れてみた。これでできた。
勘違いしまくりでスマソ # RSSReaderPanel にほぼまんまのコードがあっただよ…
<menupopup id="viewSidebarMenu">
<menuitem key="hotkey_slashzilla" observes="viewSlashzillaSidebar"/>
</menupopup>
<keyset id="mainKeyset">
<key id="hotkey_slashzilla" key="s"
modifiers="accel,shift"command="viewSlashzillaSidebar"/>
</keyset>
683:674
04/04/11 23:28
月並みな表現で申し訳ないですがお付き合いありがとうございます
おかげさまでできました
#もっとxulやjsの勉強しなければ・・・
684:デフォルトの名無しさん
04/04/16 19:54
XulPlanetが、ちょっとリニューアル?されてるので上げ。
685:デフォルトの名無しさん
04/04/16 21:32
XULのDOM Methodに大きな変更が加えられたようです。
getElementByAttribute
URLリンク(forums.mozillazine.org)
childNodes
URLリンク(forums.mozillazine.org)
要するに、返り値のNodeListが
いわゆる"live"(treewalker的な)ではない、
ということですね。
もちろん、treewalkerをつかえば、
従来のような事が出来ると思います。
686:デフォルトの名無しさん
04/04/16 21:44
>>684
ちょっとじゃない~ 詳細はここにも。
URLリンク(www.xulplanet.com)
Scriptable Object Referance 追加と commands, updating commands は
まとまった情報がなかったんで助かる~
687:デフォルトの名無しさん
04/04/29 15:04
XULアプリコンテストってどうなったんでしょうか?
ひょっとして、エントリーがなかったとか?
コンテストを開くこと自体はたいへん良いと思うので、
告知を3ヶ月前くらいからやってほしいですね。
でも、パーティ関連にすると難しいのかもしれないなぁ。
じゃあ、お前が企画しろよ、って言われると、
参加者を集められる自信は全くないが…
688:デフォルトの名無しさん
04/04/29 16:48
エントリーはありましたよ。8つほど。
689:デフォルトの名無しさん
04/04/30 17:47
じゃ、そのうち結果発表とかあるんですかね。
去年はpiro氏のやつとmoz2chが出てたような記憶が。
690:デフォルトの名無しさん
04/04/30 21:21
投票数自体が少なかったけど、結果としてはXUL/Migemoが圧倒的大勝ですた。
RSS Reader Panelのflyson氏は出品されていませんでした。
だいたいそんなとこで。
691:デフォルトの名無しさん
04/05/01 11:33
XUL/Migemoでてたんですか。
このスレに時々来る通りすがりの人のブックマークのやつはどうでした?
692:デフォルトの名無しさん
04/05/01 14:25
通りすがり師のはなかったと思う。
出てたのは
・URLリンク(white.sakura.ne.jp)
Ez Sidebar・Sidebar Window/タブキラー/テキストリンク/あと一つ(おもいだせない)
・URLリンク(www013.upp.so-net.ne.jp)
・URLリンク(mimic.gelsoft.jp)(繋がらない…?インスタントメッセンジャーです。)
・URLリンク(www.smellman.homelinux.org) (カップラーメンタイマー)
・URLリンク(tkm.s31.xrea.com)
693:デフォルトの名無しさん
04/05/01 16:28
>692
なるほど。
重ね重ね、ありがとう。
694:デフォルトの名無しさん
04/05/02 22:00
FirefoxのExtension API 暫定版が今日、初公開。
URLリンク(www.bengoodger.com)
695:デフォルトの名無しさん
04/05/02 22:18
つーか、いきなりinstall.jsを捨ててきましたか…
まあ、前に競べたら、納得の内容ですね。
icon関係もうまく処理されているようです。
696:デフォルトの名無しさん
04/05/02 23:45
これは nightly で既に実装済みのものなのかな。
draft 段階のものを読むと
URLリンク(jt.mozilla.gr.jp)
install.js は後方互換のためか残されそうだけど。
個人的にはコマンドラインオプション実装して欲しい…
697:デフォルトの名無しさん
04/05/03 00:14
上のリンクにも書いてありますが、install.jsはfirefoxから、
一方的に無視されるだけなので、
たとえば、mozillaにインストールしたときは、
install.jsの内容が反映されることになります。
従来のinstall.jsが内部で行っていた、いわゆるscript然とした
細やかな設定は、html側のInstallTrigerで行うべきだ、
というのが、Ben Goodgerの持論なので。
>コマンドラインオプション
なぜ?
698:デフォルトの名無しさん
04/05/04 11:23
全ての拡張がUUIDで管理されるようになれば、
ひょっとして、複数の言語パックを同時にインストールできたりするように
なるのかなぁ。
699:デフォルトの名無しさん
04/05/09 04:27
XULコンテスト、私は何か勘違いしていたようです。
コンテスト用に何か書き降ろさないといけないのかと思ってました。
実は、無圧縮PNGを吐くアイコンエディターを
ネタで作ろうと思っていたのですが…
ところで、私が不甲斐ないばっかりに、
いろんな人が、blogで拡張の解説文を書いてくれています。
URLリンク(kengo.preston-net.com)
URLリンク(scramble.no-ip.org)
あと、朝顔日記様とか。
どうもありがとうございます。
700:デフォルトの名無しさん
04/05/23 11:08
URLリンク(update.mozilla.org)
がついに動きだすようですね。
URLリンク(forums.mozillazine.org)
701:デフォルトの名無しさん
04/05/29 20:29
今日、Firefoxの新しいインストーラーを試してみました。
結構イイ感じで動いてます。
702:デフォルトの名無しさん
04/05/29 23:21
XULに全く関係ない話で恐縮ですが、
JLPのxsltスレは純粋な読み物としても、結構面白いです。
URLリンク(moz.skillup.jp)
で、先程parseをgoogle英和で調べてみたら、構文解析と書いてあります。
もちろん、私にとって一番わかりやすい訳は「パース」なのですが、
まあ、構文解析でも意味が通らなくはないなぁ、と感心してみたり。
パースは「分析」だけでなく、「読み込む」事自体の意味が加味されている
のが通例なので、「解析」よりは「解釈」の方がしっくり来ます。
例えば、parseIntの10進数と16進数なんかは、解析方法が違うのではなくて、
解釈方法が違う、って言ったほうがより自然な日本語だと思いませんか?
ただ、parse errorは「解釈失敗」より「解析失敗」の方がきれいな言葉ですよね…。
辞書に載っている以上、凡例が少なからずあるはずだから、やはり侮れません。
それでも、「XMLとして解析できません」よりは、「XMLとして解釈できません」
の方がいいと思うのですが…。
その他で気になったのは、"call"の訳語です。
確かに、「呼び出す」より「呼ぶ」の方が日本語として熟れているとは思いますが、
明らかにテクニカルタームなので、ここは「呼び出す」の方に一票を投じたいです。
「~を呼ぶ」という文ではどれだけこなれていても、
日本語としての不自然さはどうしようもないですから、
日常的な意味ではないことを強調した方が親切でしょう。
703:デフォルトの名無しさん
04/05/30 00:43
FireFox とか Thunderbird とか結構重いように感じるんだけど(非力なマシンなので)、
XUL で作ったアプリも、ある程度の重量感は覚悟する必要があるのでしょうか?
704:デフォルトの名無しさん
04/05/30 11:32
>703
モノに拠ります。
XPCOMをロードして使うようなタイプのアプリは速いです。
逆にfor文で100万回まわすようなスクリプトを書けば、
重くなります。
インタープリターなので当然ですね。
705:デフォルトの名無しさん
04/06/04 01:18
>>702
XULに関係ない話につっこんで悪いんだけど
parse = 構文解析
っていう翻訳はコンパイラの教科書なんかで昔っから使われているから
日本で計算機科学系の学科に居た人はみんなそう訳すんだと思う…
で,parseに「読み込む」っていう意味が加味されているっていうけど
コンパイラの教科書的には,
【字句解析】→【構文解析】→【意味解析】→【最適化】→【コード生成】
とフェーズを分けて教えるんで「読み込み」は 構文解析器(parser)の
仕事とは考えない傾向がある気がする…
706:デフォルトの名無しさん
04/06/04 03:25
>>704
XUL 分かってなかったです。すまそ。
C からも使える物と思ってた。
707:デフォルトの名無しさん
04/06/04 17:58
>>704
Cからも使えますよ。
Mozilla.orgにも、サンプルコードくらいはあったと思います。
ただ、コンパイルすると、当然プラットフォーム依存になります。
単純にUIがほしいのなら、それとトレードオフで得る速度は釣り合いません。
MFCやGTKのリソースファイルも、
UIの部分はテキストで箇条書き(?)にしてあるだけですよね。
アセンブリングの恩恵は、ほとんどないと思います。
処理が重いなら、スクリプトをC++に移植する、
という手がありますがね。
708:デフォルトの名無しさん
04/06/06 10:38
linuxでアンチエイリアスしないにはどうすればいいんですか?
709:デフォルトの名無しさん
04/06/11 17:56
linuxのアンチエイリアスってxulネタなんでしょうか?
710:デフォルトの名無しさん
04/06/12 13:13
>>704
タブブラウザ拡張も XPCOM/C++ で書き直すと速くなるんだろうなぁ...
711:デフォルトの名無しさん
04/06/12 13:50
>>710
タブ拡が遅いですと?
712:デフォルトの名無しさん
04/06/12 19:16
>>710
全部書き直さなくても、パッチとしてマージするだけでもいくらか速くなると思う。
713:デフォルトの名無しさん
04/06/12 20:19
タブといえば、
Option to determine how other applications open new windows
URLリンク(bugzilla.mozilla.org)
のターゲットマイルストーンがfirefox1.0betaになってますね。
どうやら、本気で実装されそうです。
714:デフォルトの名無しさん
04/06/12 20:26
どうでもいいけど、「呉下の阿蒙に非ず」だけ浮いてるよね。
715:デフォルトの名無しさん
04/06/12 23:16
誤爆か?
716:デフォルトの名無しさん
04/06/16 22:08
Fxの新しいエクステンションマネージャーでは、
32*32のアイコンが指定できるので、
某狐女のトレードマークを世界に向けて発信しようと思ったのですが、
なんか、お下品な連想をしてしまったのでやめました。
URLリンク(cgi29.plala.or.jp)
なんというか、角度も重要なのかなぁ。
717:デフォルトの名無しさん
04/06/17 05:16
基本的なことなんだけど、XULのGUIライブラリって
GTKをラッピングしてるの?
718:デフォルトの名無しさん
04/06/17 21:34
>>717
まあ、100パーセントそうだとは言えないけど、
gtkが使える環境ならそう言って差し支えない程度には使ってるな。
719:デフォルトの名無しさん
04/06/19 02:37
xulから呼び出す外部のJavaScriptファイルに日本語を使いたいとき、
文字コードはどうすべきですか?UTF-8など色々試しましたがどれも化けます。
それともlocaleを使うべきなんでしょうか。
720:デフォルトの名無しさん
04/06/19 03:03
>>719
ファイル名はシステムの文字コードに依存するのでは?
WindowsならShift_JISかUTF-8でしょうか。
うまくいかないのはUConvでの文字コードの変換に失敗しているからではないかと予想。
721:デフォルトの名無しさん
04/06/19 03:22
ファイル名ではなく「ファイル中に」です。
つまり、alert("こんにちは");とかやると文字化けしてウィンドウが表示されます。
722:デフォルトの名無しさん
04/06/19 04:29
>>721
\u3053\u3093\u306b\u3061\u306f
みたいにUnicodeエスケープするしかないかも知れない。
723:デフォルトの名無しさん
04/06/19 05:08
それは面倒ですね。
やはり開発はすべて英語でやって、後からlocaleを付け加えるのが常識的なのでしょうか?
724:デフォルトの名無しさん
04/06/19 07:21
alert("こんにちは")にするなら、UTF-8じゃなくて、UTF-16の方がいい。
でもそうすると、script自体がパースされないだろうから、
クォーテーションの中だけUTF-16という
変則的な文字コードにしなきゃいけない。
結局、localeを追加した方が安上がりなのよ。
725:デフォルトの名無しさん
04/06/19 21:52
なるほど。了解しました。
詳しく教えていただいて、どうもありがとうございました。
726:ヽ(゚∀゚)メ(゚∀゚)ノ
04/06/19 23:18
Moz2chのバヤイ、js自体はEUCで統一してるですが、表示すべき文字列を
ハードコーディングしないでlocaleを使用するようにしてるです。
但し、テストコードのような物だといちいちlocaleを書くのがめんどいという
後ろ向きな理由ですが、EUCで文字列を書いてnsIScriptableUnicodeConverter
を使ってEUC→UNICODEしてから表示するようにしてるです。
URLリンク(cvs.sourceforge.jp)
この辺参考にしてくださいです
727:デフォルトの名無しさん
04/06/22 20:23
Firefoxにjarファイルを使わない拡張を
新EMでインストール/アンインストールするパッチを書いてみました。
URLリンク(cgi29.plala.or.jp)
0.9の場合、componentsフォルダに入っているnsExtensionManager.jsを
URLリンク(cgi29.plala.or.jp)
と差し替えれば、ちゃんと動くはずです。
ナイトリーに使うのであれば、diff.txtをソースにあててください。
ただ、このバグがfixされた方がいいかどうかは微妙ですね。
もちろん、出来るにこした事はない、とは思いますが、
拡張やテーマを自分で書かない限り不要(いわゆるbloated)な気もします。
728:デフォルトの名無しさん
04/06/26 00:34
今日のチェックインみてたら、こんなバグがありました。
_contentのかわりにcontentを使いましょう
URLリンク(bugzilla.mozilla.org)
729:デフォルトの名無しさん
04/06/28 18:04
もうお気づきかと思いますけど、URLリンク(update.mozilla.org)が稼働していますね。
特に何もしていませんが、私の拡張も(なぜか)2つだけ入っています。
新EM対応版を公表(?)した時期に関係がありそうです。
勝手にアップデートしてくれるのなら楽でいいや、
と思っていたのですが、どうやら初回サービスのみのようです。
更新しても、反映してくれません。
うそくさいダウンロード数が少しづつ増えるのをみるのは楽しいですが、
コメントに反論できないのがちょっと。
ちなみに、私の周囲では
"Must Have!"という、おばかなフレーズが流行っています。
730:デフォルトの名無しさん
04/06/29 23:14
Mozilla 1.7のダウンロードマネージャがCtrl+Wで閉じれないのや、
メーラーでアカウントを選択しているとスペースキーやNで次の未読に
移動できないのが不満で、comm.jarやmessenger.jarを直接書き換えて
目的を達成したんだけど、こういうのもxpiで実現可能?
xpiさっぱり分からん。
731:730
04/06/29 23:16
ちなみにダウンロードマネージャの方はこんな感じ。
--- comm/content/communicator/downloadmanager/downloadmanager.xul2003-10-22 00:35:56.000000000 +0900
+++ comm/content/communicator/downloadmanager/downloadmanager.xul2004-06-26 10:33:30.000000000 +0900
@@ -27,9 +27,13 @@
<?xml-stylesheet href="chrome://communicator/skin/"?>
+<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
+
<!DOCTYPE window [
<!ENTITY % downloadManagerDTD SYSTEM "chrome://communicator/locale/downloadmanager/downloadmanager.dtd">
%downloadManagerDTD;
+<!ENTITY % utilDTD SYSTEM "chrome://communicator/locale/utilityOverlay.dtd" >
+%utilDTD;
<!ENTITY % downloadProgressDTD SYSTEM "chrome://global/locale/nsProgressDialog.dtd" >
%downloadProgressDTD;
]>
732:デフォルトの名無しさん
04/06/30 21:43
>>731
可能です。
空の拡張をつくって、contents.rdfで
chrome://communicator/content/utilityOverlay.xulをoverlayしてやればいいのです。
ただ、ロケールはoverlayのdoctypeに完全に依存するので、
utilityOverlayにdoctypeがなかったら、
utilityOverlayを手元にコピーしてdoctypeを追加したものを
あらためてoverlayした方が安全かもしれません。
733:デフォルトの名無しさん
04/06/30 21:49
あ、今みてみたら、ばっちりはいってますね。
URLリンク(lxr.mozilla.org)
734:730
04/07/01 04:44
まいったな。せっかく教えてもらったのにさっぱり分かりませぬ。
一応XULチュートリアルの日本語訳も読んでいるが、分量が多くて
どこが該当するのかも分かりません。参考になりそうな拡張ってありますか?
それはともかく、xpiで実現可能というのが分かったのはありがたいです。
735:デフォルトの名無しさん
04/07/01 08:44
「Ctrl+何々でほげほげできるようにします。」系の拡張を
Firefox Help 日本語版あたりで探してみると良いかも。
やり方はそのままSuiteにフィードバックできるので。
736:デフォルトの名無しさん
04/07/01 15:03
>>735
thanx. 動きますた。
*contents.rdf
<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="URLリンク(www.w3.org)"
xmlns:chrome="URLリンク(www.mozilla.org)">
<RDF:Seq about="urn:mozilla:package:root">
<RDF:li resource="urn:mozilla:package:dmclose"/>
</RDF:Seq>
<RDF:Description about="urn:mozilla:package:dmclose"
chrome:displayName="dmclose Extensions"
chrome:author=""
chrome:authorURL=""
chrome:name="dmclose"
chrome:extension="true"
chrome:description="dmclose">
</RDF:Description>
<!-- overlay information -->
<RDF:Seq about="urn:mozilla:overlays">
<RDF:li resource="chrome://communicator/content/downloadmanager/downloadmanager.xul"/>
</RDF:Seq>
<RDF:Seq about="chrome://communicator/content/downloadmanager/downloadmanager.xul">
<RDF:li>chrome://dmclose/content/dmcloseOverlay.xul</RDF:li>
</RDF:Seq>
</RDF:RDF>
737:デフォルトの名無しさん
04/07/01 15:04
*dmcloseOverlay.xul
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://communicator/skin/"?>
<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
<!DOCTYPE window [
<!ENTITY % utilityDTD SYSTEM "chrome://communicator/locale/utilityOverlay.dtd">
%utilityDTD;
]>
<window id="downloadManager">
</window>
738:デフォルトの名無しさん
04/07/01 15:40
なんか変なところありますか? さて、あとはインストーラか。
メーラーの方は、mail3PaneWindowCommands.js, mailWindowOverlay.js, mailWindowOverlay.js を
書き換えて動作を変更しているのですが、こちらは実現できますかね。
一部の関数のみをxpiで差し替えて動作させるようなことはできますか。
それともoncommand=で呼び出される関数から変更した関数に至るまでの部分を
すべてコピーする必要があったりしますか。
739:デフォルトの名無しさん
04/07/01 17:39
これでいいのですが、私が732-733で言いたかったのは、
直接utilityOverlay.xulをoverlayしてみては?ということです。
お分かりかと思いますが、overlayには2通りの方法があります。
ひとつは、「xulに直接<?xul-overlay?>を埋め込む」やりかたで、
もうひとつは「パッケージをインストールする」ことです。
結論から言いますと、この種の拡張(?)ではxulファイルが一切不要です。
740:デフォルトの名無しさん
04/07/01 17:55
>一部の関数のみをxpiで差し替えて動作させるようなことはできますか
できます。
javascriptの面白い点は、関数といえども、オブジェクトのひとつに過ぎない、
と言う点です。
よって、代入できてしまうのです。
値は他の関数でもいいのですが、
名前空間を不必要に汚すよりは、
関数リテラルを代入するほうが望ましい、と思われます。
741:デフォルトの名無しさん
04/07/01 18:40
あっ、こうすればいいのか。
<RDF:Seq about="urn:mozilla:overlays">
<RDF:li resource="chrome://communicator/content/downloadmanager/downloadmanager.xul"/>
</RDF:Seq>
<RDF:Seq about="chrome://communicator/content/downloadmanager/downloadmanager.xul">
<RDF:li>chrome://communicator/content/utilityOverlay.xul</RDF:li>
</RDF:Seq>
>お分かりかと思いますが、overlayには2通りの方法があります。
すんません。よく分かっていません。
742:デフォルトの名無しさん
04/07/01 18:57
>>741
そうです。そういうことです。
>よく分かってない
>>736,>>737では両方使っていたんですよ。
utilityOverlay.xulを736にoverlayして、
736をdowloadmanger.xulにoverlayしていたわけですよね。
>>741は一回しか使わなくて済んでいます。
当然741の方がお薦めです。
743:デフォルトの名無しさん
04/07/02 02:29
URLリンク(www.xulplanet.com)を見ながら読み直して
ようやく分かってきました。
さて、次は関数の差し替え方法か。
744:デフォルトの名無しさん
04/07/02 03:33
>>743
そんなに難しい事じゃないですよ。
例えば openURI() を乗っ取るなら
window.openURI = function(aURI, aReferrer) {
// hogehoge
}
と書くだけでもOK。
内部で元の関数の機能を呼び出したいなら
var originalOpenURI = window.openURI;
window.openURI = function(aURI, aReferrer) {
// hogehoge
originalOpenURI(aURI, aReferrer);
// foobar
}
という具合です。
元の関数を保持しておくオブジェクトの名前が他とかぶると
いけないからということで、後者についてはいくつかやり方があります。
上は一番単純な例。
745:デフォルトの名無しさん
04/07/02 05:57
メーラーの方はちょっと置いといて、NN4みたいにBackSpaceで上方向へ
スクロールするようにする拡張を作ってみました。上の方法でばっちり動きました。
せっかくですので下の方法についてもう少し解説していただけるとうれしいです。
746:デフォルトの名無しさん
04/07/02 09:30
解説っていっても見たまんまなんですけどね。
>>774後半の例は以下のような内容です。
1. 関数オブジェクト "(window.)openURI" の内容である関数を参照するエイリアスを
"originalOpenURI" という名前で作成。
2. "(window.)openURI"というエイリアスの参照先として新しい匿名関数を定義する。
3. 省略
4. "originalOpenURI"のエイリアスで参照している関数を実行。
5~6. 省略
つまり
window.openURI => "function openURI()"
となっていたのを
originalOpenURI => "function openURI()"
window.openURI => "function()"(匿名関数)
に変更するということ。
747:デフォルトの名無しさん
04/07/02 09:33
NortonのAntiVirusかInternetSecurityかどっちのはたらきか知りませんが、
ポップアップ抑止の機能を導入すると、閲覧するWebページの先頭に
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes)
{
return (new Object());
}
window.open = SymWinOpen;
こんな感じのJavaScriptを挿入してきます。
やってることはこれと一緒です。
748:デフォルトの名無しさん
04/07/02 11:29
746はエイリアスとはちょっと違うと思う。
jsにとってのオブジェクトは実体そのものだからね。
本等にエイリアスなんだったら、名前解決が元のままのはずだしね。
749:デフォルトの名無しさん
04/07/02 13:34
>>746
えー、すんません、そういうことではなくて、
>元の関数を保持しておくオブジェクトの名前が他とかぶると
>いけないからということで、
の、回避方法はどういうのがあるのかなーということです。
750:デフォルトの名無しさん
04/07/02 20:47
>>749
その1。一意な名前の変数にする。
名前空間URIのようにすればほぼ確実。
window['URLリンク(hoge)'] = window.openURI;
window.openURI = function(uri, ref) {
// hoge
window['URLリンク(hoge)'](uri, ref);
// fuga
}
その2。クロージャを使う。
function init() {
var originalFunc = window.loadURI;
window.loadURI = function(uri, ref) {
//hove
originalFunc(uri, ref);
//fuga
}
}
init();
この例でいうinit()の部分さえ名前がかぶらなければ、
変数originalFuncは関数外部からはアクセス不可能なので
破壊される恐れもない。
751:デフォルトの名無しさん
04/07/03 08:45
>>750
なるほど。ありがとうございます。
メーラー用の拡張の作成は少し先のことになりそう。
752:デフォルトの名無しさん
04/07/03 15:20
XUL特集、らしい。
URLリンク(www.unixuser.jp)
753:デフォルトの名無しさん
04/07/04 07:55
XULチュートリアルを勉強している者です。
URLリンク(xul-app.hp.infoseek.co.jp)
こちらのRDFデータソースの章に書いてあることを試したところ、
ドロップダウンリストに文字列を入力してボタンを押してアプリを再び開くと
ドロップダウンリストの項目がどんどん増えていくのですが、追加されたデータは
どこに保存されているのでしょうか。
「最後に、Flush 関数を使ってデータソースをディスクに書き出す。」とのことですが、
素人の安直な考えでは初めに読み込んだ recents.rdf ファイルへ書き込まれるのだろう
と思ったけど実際に開いてみると違いました。
754:デフォルトの名無しさん
04/07/04 09:09
要素のdatasourceをとってきてそれを直接編集しようとしていますね。
あまり、いいやり方ではないし、少し古いです。
多分、このスクリプトが書かれたころは、
Flush()で、recents.rdfに書き込まれていた、と想像しています。
ま、当世流とはちょっと違う、ということで。
755:753
04/07/04 19:41
よく調べたらプロファイルdirのlocalstore.rdfに保存されていました。
756:デフォルトの名無しさん
04/07/04 22:27
ま、そうだろうね。datasourcesで明示してなくても、rdf:localstoreは、
どの要素でも使用している。
というのは、persist属性とかで、値を保存しておいて、
長さや位置を覚えておくために必要だからだ。
757:デフォルトの名無しさん
04/07/06 18:58
firefox0.9でXULMAKER0.5使おうとしたら起動すら出来ないんだが
誰かやってない?
758:デフォルトの名無しさん
04/07/06 19:28
age
759:デフォルトの名無しさん
04/07/07 08:38
moz2chをインスコしたら、
mozillaのbookmarkが消失したぞ(゚Д゚)ゴルァ
760:plus7 ◆XULQA16CSE
04/07/07 16:19
URLリンク(tkm.s31.xrea.com)
XUL/Migemoの正規表現を外部から使えるようにしてみました。
var re = window.xulMigemoCore.getRegExp("unko")
てな感じで正規表現オブジェクトを得られます。
もしよろしければお使い下さい。
761:デフォルトの名無しさん
04/07/07 17:25
>>752
買いに行ったらXULは来月号に飛ばされていた。
代わりにwxWidgetsとかいうやつが特集されていた。これはこれでおもしろそうではあるが。
762:デフォルトの名無しさん
04/07/07 19:31
拡張を作る上で、今までは、プログラムフォルダの下にあるchromeに
フォルダをつくって、appname.jarなどに固めずやってたのですが、
新しい仕様でも、extensionsの下にフォルダを置いてできるんですかねぇ?
about="urn:mozilla:extension:file:appname.jar"
のところをいじったら出来そうな気もするんですが・・・。
763:デフォルトの名無しさん
04/07/08 00:45
>>762
>>727
764:デフォルトの名無しさん
04/07/08 03:50
>>761
(´・ω・`)ショボーン
765:デフォルトの名無しさん
04/07/08 21:50
こっちに聞いた方が良いと思い書きます。
mozilla updateに登録ってどうすればいいのですか?
以下とマルチポスト
スレリンク(software板:383番)
766:デフォルトの名無しさん
04/07/09 01:38
XULチュートリアルのバインディングのサンプルがうまく動きません(バインディングが反映されない)。
URLリンク(xul-app.hp.infoseek.co.jp)
このサンプルに何か問題点ありますでしょうか?
XUL (example.xul):
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://example/skin/example.css" type="text/css"?>
<window xmlns="URLリンク(www.mozilla.org)">
<box class="okcancelbuttons"/>
</window>
CSS (example.css):
box.okcancelbuttons {
-moz-binding: url('chrome://example/skin/example.xbl#okcancel');
}
XBL (example.xbl):
<?xml version="1.0"?>
<bindings xmlns="URLリンク(www.mozilla.org)"
xmlns:xul="URLリンク(www.mozilla.org)">
<binding id="okcancel">
<content>
<xul:button label="OK"/>
<xul:button label="Cancel"/>
</content>
</binding>
</bindings>
767:デフォルトの名無しさん
04/07/09 02:05
>>766
"example"はパッケージとして登録されてる?
768:デフォルトの名無しさん
04/07/09 05:36
>>766
ええ、もちろんです。
installed-chrome.txt :
content,install,url,resource:/chrome/example/content/
skin,install,url,resource:/chrome/example/skin/classic/
ブラウザに直接クロムURLを打ち込めば一応ウィンドウは表示されます。
バインディングが成功すればそこにボタンも出るはずなのですが...
769:デフォルトの名無しさん
04/07/09 09:41
>>765
bugzillaに拡張を登録しろ、ってFAQに書いてあるが?
770:デフォルトの名無しさん
04/07/09 12:49
>>768
色々試してみたところ、ファイル名の拡張子がxblでは動かないようです。
xmlにすれば動きました。
私がこのチュートリアルをやってた頃はxblで問題なかったんですがねぇ。
XULPlanetのリファレンスはわりと頻繁に更新されていますが、
チュートリアルの方はMozilla1.0のころから更新されていないようです。
それをさらに和訳してあるわけですから、例が現実に追いついてないのも
仕方のないことなのでしょう。
771:デフォルトの名無しさん
04/07/09 16:22
>>770
うほほーー!xmlにしたら無事に出来ました!サンクスです。
772:デフォルトの名無しさん
04/07/09 20:01
>>757
こんなんどうでしょうか?
URLリンク(forums.mozillazine.org)
773:デフォルトの名無しさん
04/07/09 20:42
URLリンク(www.mozilla.gr.jp)
これのコピーもっている人くれ
774:デフォルトの名無しさん
04/07/09 21:31
>>773
φ( ゜゜)ノ ゜
URLリンク(web.archive.org)
775:デフォルトの名無しさん
04/07/09 22:01
>>733
が言ってるのはサイトじゃなくてxpiのことじゃない?
776:773
04/07/10 13:38
>>774
xpiダウソできました。
ありがとうございました。
777:デフォルトの名無しさん
04/07/11 02:57
スクロールバーの付いたbox要素などでもマウスホイールが効くようにはできますでしょうか?
778:plus7 ◆XULQA16CSE
04/07/11 03:12
>>777
URLリンク(white.sakura.ne.jp)
かな?
779:デフォルトの名無しさん
04/07/11 03:16
>>778
まさにそれです!しかしかなり難しそうなのであきらめまつ...
780:デフォルトの名無しさん
04/07/11 06:41
>>779
そんな難しくないと思いますよ。
>>766の例の状況で示すと、こんな感じでしょうか。動作確認はしてませんが。
XUL (example.xul):
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://example/common/example.css" type="text/css"?>
<window xmlns="URLリンク(www.mozilla.org)">
<box class="scrollbox"/>
</window>
CSS (example.css):
box.scrollbox {
-moz-binding: url('chrome://example/content/example.xml#scrollbox');
}
box.scrollbox scrollbar {
-moz-binding: url('chrome://example/content/example.xml#scrollbar');
}
781:デフォルトの名無しさん
04/07/11 06:42
つづき。
XBL (example.xml):
<?xml version="1.0"?>
<bindings xmlns="URLリンク(www.mozilla.org)"
xmlns:xul="URLリンク(www.mozilla.org)">
<binding id="scrollbox">
<implementation>
<handler event="DOMMouseScroll"><![CDATA[
var count = event.detail > 0 ? 50 : -50 ;
this.mScrollbar.setAttribute('curpos', Math.min(Math.max(0, Number(this.mScrollbar.getAttribute('curpos'))+count), Number(this.mScrollbar.getAttribute('maxpos'))));
]]></handler>
</implementation>
</binding>
<binding id="scrollbar" extends="chrome://global/content/bindings/scrollbar.xml#scrollbar">
<implementation>
<constructor><![CDATA[
if (navigator.platform.indexOf('Mac') != -1) this.initScrollbar();
this.parentNode.mScrollbar = this;
]]></constructor>
</implementation>
</binding>
</bindings>
TBEの /content/tabextensions/scrollableTabBar.xml も参考にしてみて下さい。
782:デフォルトの名無しさん
04/07/11 06:43
すみません。
<?xml-stylesheet href="chrome://example/common/example.css" type="text/css"?>
じゃなくて
<?xml-stylesheet href="chrome://example/content/example.css" type="text/css"?>
ですね。
あと、水平スクロールバーと垂直スクロールバーのそれぞれについて
処理を振り分けるのも忘れてました。まあその辺は適当に。
783:名無しさん@そうだ選挙に行こう
04/07/11 07:36
もう一つミスが……
<implementation>
<handler event="DOMMouseScroll">(略)</handler>
</implementation>
ここは
<implementation>~</implementation>
ではなくて
<handlers>~</handlers>
です。
784:名無しさん@そうだ選挙に行こう
04/07/11 09:10
解説も含めてまとめときました。もしよろしければどうぞ。
URLリンク(white.sakura.ne.jp)
785:名無しさん@そうだ選挙に行こう
04/07/11 14:44
>>780-784
丁寧にありがとうございます!さっそく今試してみます。
このスレは親切な方が多くて助かります。
786:名無しさん@そうだ選挙に行こう
04/07/11 14:53
window内にiframeがあるようなxulページを表示させると、
windowのonloadイベントが二度発生しますが、これはなぜなんでしょう??
たとえば下のコードを表示させると、alertウィンドウが二度出てきます。
環境:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040614 Firefox/0.9
<?xml version="1.0"?>
<window xmlns="URLリンク(www.mozilla.org)" onload="alert('onload');">
<iframe />
</window>
787:名無しさん@そうだ選挙に行こう
04/07/11 16:06
>>786
iframe内のページのonloadイベントがバブリングで伝搬するからですな。
URLリンク(www2u.biglobe.ne.jp)
788:名無しさん@そうだ選挙に行こう
04/07/11 20:00
プロパゲーションが止められないのって、
実は結構不便な気もするな。
こんな感じでイベントハンドラを書けば済むのだが。
function myOnLoad(event){
if(event.target.localName=="window")
alert('onload');
}
789:デフォルトの名無しさん
04/07/11 20:34
イベントバブルで制御できるんでは
790:786
04/07/12 13:23
>>787-789
なるほど、なぞがわかってすっきりしました。
791:デフォルトの名無しさん
04/07/17 09:59
preventBubbleって、そんなに便利でもないんだよなぁ。
一つのイベントに複数のリスナがある時とか。
792:デフォルトの名無しさん
04/07/21 00:47
ローカルに保存されたHTMLファイルを読み込み、パースしてDOMとして利用することは可能でしょうか??
var doc = (new DOMParser()).parseFromString(fileContent, "text/html");
alert(doc.title);
とやってみたのですが、1行目でエラーとなります...
793:デフォルトの名無しさん
04/07/21 03:54
>>792
実はdomparserのtext/htmlモードは未実装なのです。
かわりに、innerHTMLを使ってください。
794:デフォルトの名無しさん
04/07/21 03:58
あるいは、>>650とか。
795:デフォルトの名無しさん
04/07/21 23:11
var URI = "URLリンク(jt.mozilla.gr.jp)";
var doc = document.implementation.createDocument('', '', null);
doc.load(URI);
doc.addEventListener('load', docLoaded, false);
function docLoaded() {
alert(doc.title);
}
これでは何も表示されませんですけど、何か間違っているようですね。。
796:デフォルトの名無しさん
04/07/22 03:07
>>795
mozilla 1.6 で試してみたけど…
doc.async = false;
var result = doc.load(URI);
alert(result);
してみると doc.load(URI) が false が返してくるみたいね… なんでだろ??
XUL内に不可視のbrowser要素を配置してそこにloadURI()で読み込んだら
だめかな?
797:デフォルトの名無しさん
04/07/22 05:48
>>795
ありがちなミスだけど、ひょっとして、XULでやってる?
createDocumentのnamespaceを無指定にすると、実行環境に影響されるから、
HTMLDocumentではなく、XULDocumentになって、htmlファイルをロードできない。
798:デフォルトの名無しさん
04/07/23 19:47
>>796
hidden=trueなbrowserに対してloadURIでHTMLをロードさせたら
Type Error: this.docShell has no properties
と怒られました。
>>797
なるほど、確かにXULでやってました。
799:デフォルトの名無しさん
04/07/23 22:08
>>798
hidden="true" (displaynone)だと初期化がされないので注意が必要。
collapsed="true" (visibility:collapse)なら動くはず。
800:デフォルトの名無しさん
04/07/23 23:06
>>799
なるほど、それでうまくいきました。
801:デフォルトの名無しさん
04/07/24 03:17
>>797
>createDocumentのnamespaceを無指定にすると、
ってことは正しい(?)指定をするとXULでもHTMLDocumentが返ってくる
ようになるんでしょうか?
802:デフォルトの名無しさん
04/07/24 20:08
>>801
いろいろ探してみたけど、HTMLDocumentを作るのって意外に難しい。
doctypeを決め打ちしてしまうと本末転倒だから、やっぱ無理かも。
xhtmlならとても簡単なのに、この差は一体…
803:デフォルトの名無しさん
04/07/29 15:45
XULアプリ内で mozilla と firefox を区別する方法ってないですかね??
804:デフォルトの名無しさん
04/07/29 22:48
>>803
browser.jarのあるなしを見るとか、
function browserURI()
{
var handler = Components.classes['@mozilla.org/commandlinehandler/general-startup;1?type=browser'].getService(Components.interfaces.nsICmdLineHandler);
var uri = handler.chromeUrlForTask;
if (uri.charAt(uri.length-1) == '/')
uri = uri.replace(/chrome:\/\/([^\/]+)\/content\//, 'chrome://$1/content/$1.xul');
return uri;
}
でchrome://browser/content/browser.xulが帰ってくるかどうかを調べるとか。
805:デフォルトの名無しさん
04/07/29 23:01
piro氏のTBEはインスコ時に判定しとくって手を使ってるみたいね
806:デフォルトの名無しさん
04/07/30 02:57
インスコ時はbrowser.jarを見て、
インストール後の動作では>804の後者の方法を使ってます。
807:デフォルトの名無しさん
04/07/30 14:48
>>803
firefox 0.9以上なら新しいEM用なのか
about:configのapp:idにFirefoxのGUIDが書き込まれてます
インストール後なら、これを見て判断するというのはどうでしょう?
808:デフォルトの名無しさん
04/08/06 16:41
fileスキームのURIで示されたローカルファイルを削除する方法はありませんか?
たとえばfile:///C:/foo/bar.jpgだったり、file:///home/nanashi/bar.jpgだったり、
OSに依存しない方法があればいいのですが。
809:デフォルトの名無しさん
04/08/06 17:34
jslib使うとかそこからコードをぱくるとか
810:デフォルトの名無しさん
04/08/06 17:39
ってかただaFile.remove(true)でいいっぽい
811:デフォルトの名無しさん
04/08/06 18:54
ファイルのURIからnsIFileは作れないようです。
var aFile = Components.classes['@mozilla.org/file/local;1']
.createInstance(Components.interfaces.nsILocalFile);
aFile.initWithPath("file:///C:/foo/bar.jpg");
で、パスが認識できないと怒られます。
812:デフォルトの名無しさん
04/08/06 19:01
>>811
URLリンク(white.sakura.ne.jp)
813:デフォルトの名無しさん
04/08/06 19:17
>>812
ああ、まさにそちらに書いてあるとおりのことでした!
ありがとうございました。
814:デフォルトの名無しさん
04/08/08 02:24
で、だれか
URLリンク(www.unixuser.jp)
買ってないの?
815:デフォルトの名無しさん
04/08/08 02:51
仲村直人って意外な趣味持ってるんだな。
URLリンク(www.jbl.or.jp)
816:デフォルトの名無しさん
04/08/08 02:54
見事に同姓同名だな
817:デフォルトの名無しさん
04/08/14 12:13
URLリンク(nazo.europe.webmatrixhosting.net)
818:デフォルトの名無しさん
04/08/20 16:24
保守
819:デフォルトの名無しさん
04/08/23 04:32
現在フォーカスしているブラウザタブのアイコン(いわゆるfavicon)のURLを得る方法を模索しています。
top.window.document.getElementById("page-proxy-favicon").src
でとりあえずそれらしいものは得られるのですが…
820:デフォルトの名無しさん
04/08/23 13:14
>>819
gBrowser.selectedTab.getAttribute('image')でどうでしょう。
空以外ならfaviconと判断できそうな。
821:819
04/08/23 19:07
>>820
それでばっちりでした。どうもありがとうございました。
822:デフォルトの名無しさん
04/08/31 21:44
a.xulからopenDialog('b.xul')でダイアログを開き、そこでの入力結果をa.xulに返す
というかb.xulでの入力結果をa.xulで受け取る方法はありますでしょうか?
ただの文字列を入力させるだけなら、a.xulでvar input = prompt(...)で入力を受け取れますが、
今回はユーザに入力させたい項目が複数あるという状況であります。
823:デフォルトの名無しさん
04/08/31 22:14
>>822
b.xul から window.opener で a.xul にアクセスできるようだ。
使用例(JavaScript の詳細設定ダイアログ):
URLリンク(lxr.mozilla.org)
824:デフォルトの名無しさん
04/08/31 22:18
>>823
今試してできました。見事に簡単ですね!
825:デフォルトの名無しさん
04/08/31 22:18
>>822
openDialogは4番目以降の引数に任意のものを渡せます。
オブジェクトを渡せば処理結果を得ることもできます。
//a.xul
var obj = {};
window.openDialog('b.xul', '_blank', 'chrome,dialog,modal', obj);
alert(obj.result);
//b.xul
<dialog onaccept="window.arguments[0].result = document.getElemenntById('input').value; window.close()">
<textbox id="input"/>
</dialog>
モーダルダイアログにしないと処理結果を返す前にa.xulの処理が先に進んでしまうので注意。
826:デフォルトの名無しさん
04/08/31 22:30
//a.xul
var input = {};
window.openDialog('b.xul',...);
//b.xul
<dialog onaccept="window.opener.input.hoge = ...">
と書きましたが825さんの書き方もいいですね。
827:デフォルトの名無しさん
04/09/01 19:56
初めまして。
「ブラウジングの際に次ページをポップアップ表示する」という機能を作成しようとしています。
そこで質問なのですが、createElementNS()で作成したウインドウ(例えばAltポップアップのようなもの)の中に
Webページを表示することは可能でしょうか?
Elementをポップアップするより、window.openしちゃったほうがいいのかなぁ・・・
828:デフォルトの名無しさん
04/09/01 20:42
URLリンク(patsis.edula.com)
このLink Previewという拡張が似てますが、これはOpen Thumbshotsのサムネイル画像を
表示させているみたいです。ごく一部のサイトしかサムネイルが表示されません。
XUL側でWebページのサムネイル画像を作れたらいいですけど、ちょっと無理そうですね。
829:デフォルトの名無しさん
04/09/02 00:56
>>827,828
<button tooltip="hogetip" label="hoge" />
<tooltip id="hogetip"><iframe src="about:mozilla" /></tooltip>
とやってやれば、別ページをポップアップ表示することは"一応"できるようだが、
サムネイルを作る方法 or ページ表示を縮小する方法を知らないので教えられない。
830:デフォルトの名無しさん
04/09/02 01:49
URLリンク(multiscroll.mozdev.org)
これの縮小表示機能が参考になるかも
831:デフォルトの名無しさん
04/09/02 11:32
>>828, >>829, >>830
ありがとうございます! 参考にさせていただきます!
>>828の拡張は画像で表示するんですよね。
ポップアップしたページからまたポップアップ……と階層的に表示したいと考えているので確かにそれだと無理そうです。
>>830のようにページ表示を縮小する方向で作ってみることにします。
832:デフォルトの名無しさん
04/09/02 20:56
overlayで存続の要素を削除できますか?
833:デフォルトの名無しさん
04/09/04 19:22
>>832
存続の要素って?
834:デフォルトの名無しさん
04/09/04 20:17
既存の間違い?
835:デフォルトの名無しさん
04/09/04 21:07
>>834
そうです。
結局styleでdisplay:noneにして解決しました。
836:デフォルトの名無しさん
04/09/05 20:43
拡張でstyleを指定するのは、あまりよろしくない。
hiddenプロパティの方がいい。
837:デフォルトの名無しさん
04/09/05 21:11
xul.cssには
*[hidden="true"] { display: none; }
と書いてあるんだけどね。
838:デフォルトの名無しさん
04/09/06 12:38
>>837
そういう問題ではない。
839:デフォルトの名無しさん
04/09/06 17:47
>>836
何故でしょうか?
stylesheetをオーバーレイさせて、ほぼ一意性があるようにセレクタを設定しました。
そこを追加・削除できる拡張とバッティングするはずですが、hiddenプロパティーでも同じはずなので一番いいのはDOMで要素ごと削除だと思いますが、ちょっとめんどくさい…
#日本語って難しい
840:デフォルトの名無しさん
04/09/07 00:53
ほぼ一意性があると思ってるんならそれでいいんじゃない?
DOMで要素を削除するのはやめた方がいい。
841:デフォルトの名無しさん
04/09/07 22:40
0.9対応の拡張を1.0対応にさせるにあたって、変更すべきところは
install.rdfの対応バージョンのところだけでしょうか。
842:デフォルトの名無しさん
04/09/08 03:25
ローカルファイルの変更を監視してイベントを発せさせるようなことはできますか?
843:デフォルトの名無しさん
04/09/10 18:18:23
>>802
いまのところ、URLからHTMLDocumentオブジェクトを作るのはできないのでしょうか?
browser要素などを隠してdocumentを得るのはダサいですよね。
HTMLDocumentからanchorエレメントを得て先読みするものを作りたいのですが
何かいい方法内でしょうか?
あと、DOMImplementationのcreateDocumentからHTMLDocumentが返ってくることって
あるんですかねぇ。
XMLDocumentだとできるようだが・・・。
844:デフォルトの名無しさん
04/09/12 08:34:30
>>828-829
サムネイルを作るというかスクリーンキャプチャ撮影のインターフェースならあるようなのですが、
実装はされていないようですね。
URLリンク(xulplanet.com)
845:デフォルトの名無しさん
04/09/14 13:43:31
>>795-802, >>843
nsIDocumentLoaderFactory というのを発見したので、試しに
Components.classes["@mozilla.org/content-viewer-factory/view;1?type=text/html"]
を呼んでみたが、実装されていないのか動かない。
846:845
04/09/16 01:38:45
Components.classes["@mozilla.org/content/document-loader-factory;1"].createInstance(Components.interfaces.nsIDocumentLoaderFactory)
はきちんと返しているみたいだけれども、
nsIDocumentLoaderFactory::createBlankDocument(in nsILoadGroup, out retval nsISomething);
の引数である nsILoadGroup の扱い方がわからなかった。
847:845
04/09/16 01:48:58
開きなおって、webShell から作ってしまうことにしたら HTMLDocument が得られるm模様。すなわち:
var webnavi = Components.classes["@mozilla.org/webshell;1"]
.createInstance(Components.interfaces.nsIWebNavigation);
webnavi.loadURI("about:blank", 0, null, null, null);
webnavi.document;
を JavaScript Console に投げ込むと、[object HTMLDocument] が手に入れられた。
>>353
こういうのをまとめる Wiki みたいのがあると便利だな...
848:デフォルトの名無しさん
04/09/16 22:34:16
>>847
Firefoxまとめサイトにそういうページを作ればいいのでは?
wikiの乱立はやめてほしい
849:デフォルトの名無しさん
04/09/19 12:26:13
あまり知られてないけど、mozilla.orgにもwikiあるんだよね。
URLリンク(wiki.mozilla.org)
850:デフォルトの名無しさん
04/09/20 12:14:34
>>847
確かに返ってきますね。
でも、loadURIでuriを指定してもダウンロードはしている様だけど
中身が入ってないっぽい?
851:デフォルトの名無しさん
04/09/20 13:37:13
timerかlistener使って読み込み待ちすればいいのでは?
852:デフォルトの名無しさん
04/09/20 18:18:47
SOAPのネストができないorz
SOAP_PROPERTYBAG_REQUIRED: When encoding as a struct, an object with properties is required
とかいわれる
idlist=new Array();
idlist[0]=new SOAPParameter("text","id");
idlist[1]=new SOAPParameter("text2","id");;
params[0]=new SOAPParameter(idlist,"IDList");
どうすればいいでしょうか?
853:852
04/09/20 19:01:14
ってかwsdl使えるのね
どっか解説サイトないかなぁ
854:852
04/09/20 20:32:52
やっとできた
idlist={
id:"text"
id:"text2"
}
855:デフォルトの名無しさん
04/09/20 22:22:45
ってだめだ
名前空間のの設定ができねぇorz
856:デフォルトの名無しさん
04/09/25 02:44:57
Firefox1.0PR での話なのですが、
URLリンク(www.mozilla.gr.jp)
この通りに installed-chrome.txt を記述しても、
chrome.rdf に書き込まれず、xul が追加できません。
理由が解る人が居らっしゃたら、御教え願えないでしょうか?
……install.rdf を作って、xpiでインストールするしか無いのかなぁ。
857:デフォルトの名無しさん
04/09/25 03:32:18
>>856
URLリンク(fls.moo.jp)
こっちを見た方がいいかも
858:856
04/09/25 04:09:11
>>857
おおっ、ありがとう。
試してみます。
859:デフォルトの名無しさん
04/09/30 00:08:22
Firefoxに自作の機能拡張入れてみたんだが
localeのja-JPのリソースが使用されないんですが何か設定いりますか?
自作のが駄目で、メジャーなのをいくつか入れてみたけど全部en-USのが使われました。
Firefox自体は通常インストールで何もいじっていません。
860:デフォルトの名無しさん
04/09/30 01:06:09
Firefoxのバージョンは?JLP組み込み済みの日本語版をインストールしたなら、
URLリンク(firefox.geckodev.org)
861:デフォルトの名無しさん
04/09/30 04:00:00
>>860
ありがとうございます。
ずばりそれでした。
↓も参照しました。
URLリンク(moz.skillup.jp)
本体側の問題のようですね、1.0の時には直っていて欲しいものです。
862:デフォルトの名無しさん
04/10/01 03:55:10
Javaから使えるXUL処理系を探していて、
URLリンク(luxor-xul.sourceforge.net)
というのを見つけたんだけど、使ったことのある人いる?
URLリンク(www.javadesktop.org)
なんて言われていたりもするんで、どうなのかなーと思ったんだけど。
863:デフォルトの名無しさん
04/10/01 04:11:22
luxorのXULはMozillaのXULと違う所が結構あると聞いたことがある気がする
864:デフォルトの名無しさん
04/10/05 21:08:37
URLリンク(www.neowin.net)
読んで、XULRunner やる気みたいだけど実際やってんのかなぁ、と思って LXR 見たら
URLリンク(lxr.mozilla.org)
あったよ。2,3 ヶ月したらバイナリでてくるかな?
865:デフォルトの名無しさん
04/10/06 18:59:36
>>863
結構ある、どころか全くの別物だよ。
とりあえず、このスレのXULとは何の関係もない。
866:デフォルトの名無しさん
04/10/07 00:28:26
質問です。template の構築が終了したタイミングをとるはどうやったらいいのでしょうか。
template で listbox を構築した後で、任意の要素を選択したいのです。今、↓のようにtemplate のビルドを完了したイベントを入手して処理しているのですが、しばしばビルド完成前に didRebuild が呼ばれるようで、うまくいきません。
oListbox.addListener({
didRebuild : function(aBuilder){
oListBox.selectedIndex = 1;//例えば最初のアイテムを選択してみる
},
willRebuild : function(aBuilder){},
QueryInterface : function(aIID){
if(aIID.equals(Components.interfaces.nsIXULBuilderListener)
aIID.equals(Components.interfaces.nsISupports)) return this;
throw Components.results.NS_NOINTERFACE;
}
});
867:866
04/10/07 00:30:41
訂正:oListbox.addListener(... じゃなくて oListbox.builder.addListener でした。
URLリンク(www.xulplanet.com)
868:デフォルトの名無しさん
04/10/08 19:54:15
拡張の更新確認用のrdfの書き方についてお尋ねします。
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="URLリンク(www.w3.org)"
xmlns:em="URLリンク(www.mozilla.org)">
<rdf:Description about="urn:mozilla:extension:{***GID***}">
<em:version>1.0</em:version>
<em:updateLink>URLリンク(***)
</rdf:Description>
</rdf:RDF>
以上のような書式でrdfをアップしておきました。
これに対して、install.rdfに<em:version>0.9</em:version>とした拡張を
ツール > 拡張機能 > 確認 とやってみたところ、更新されたパッケージが見つかりませんでした
になってしまいました。
おそらくはrdfの書式が間違っているか足りないのかと思いますが、
最低限の正しい書式はどのようになるか、教えていただきたいです。
869:デフォルトの名無しさん
04/10/08 21:45:58
>>868
1.0から仕様が変わりました。
是とか参考にすれば分かるはず
URLリンク(cdn.mozdev.org)
870:868
04/10/08 22:44:32
>>869
できました。ありがとうございました。
どうやら更新確認のrdfにもキャッシュが効いてたせいで余計混乱してたみたいです。
871:デフォルトの名無しさん
04/10/09 07:55:19
キーバインドでの質問なのです。
以下のものを *.xul で保存して Firefox(0.10.1) で読み込み、
Alt + 何か を押すと(k以外の何でも)反応してしまい、他のショートカットを上書きしてしまいます。
何が悪いのかさっぱり解らないのですが、ヒントだけも教えてもらえないでしょうか?
<?xml version="1.0"?>
<window id="keyconfigOverlay"
xmlns="URLリンク(www.mozilla.org)">
<keyset id="mainKeyset">
<key id="keychk" keycode="k" modifiers="alt" oncommand="alert('hoge');" />
</keyset>
</window>
872:デフォルトの名無しさん
04/10/09 09:39:37
keycode じゃなくて key
modifiers の値は alt より accel のほうがいいかも。
873:デフォルトの名無しさん
04/10/09 11:34:35
ここらあたりも読んでおくと吉かと
URLリンク(www.mozilla-japan.org)
Mozilla キーボード・プラン FAQ とクロスリファレンス
874:デフォルトの名無しさん
04/10/09 14:35:07
>>872-873
ありがとう。
思い通りになりました。m(_ _)m
しかし、accelは使用済みが多いし、ctrl+altも駄目となると、結構厳しいですね……
875:デフォルトの名無しさん
04/10/09 18:14:24
俺は ctrl(accel)+shift をよく使う。空いてるし。
876:デフォルトの名無しさん
04/10/09 18:34:47
>>866 まだ見てるかな?
listbox の中身を rdf ファイルから読み込んで template で作るとき
rdf の読み込みが非同期なので template 内の要素にアクセスできないことがある。
listbox の datasources をまず rdf:null にしておいて、
var RS = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var DS = RS.GetDataSourceBlocking("chrome://[rdf の場所]");
var oListBox = document.getElementById("[listbox の ID");
oListBox.database.AddDataSource(DS);
oListBox.builder.rebuild();
oListBox.selectedIndex = 1;
rdf がローカルならこれでいいんじゃないかな。
rdf がリモートなら RS.GetDataSource , DS.addXMLSinkObserver 使う。
的外れだったらスマソ
877:866
04/10/09 23:34:29
>>876
GetDataSourceBlocking ですか、ありがとうございます。ただ、これだけだと selectedIndex = 1; がうまく動きませんでした。
どうやらここでの非同期な動作は、「RDF 読み込み」と「template による要素の生成」のふたつのようで、>>876 は前者、>>866 は多分後者の処理の終了を受け取る方法だと思いました。
そこで >>876 の最後の行 oListBox.selectedIndex = 1; の手続きを >>866 の方法で行うことにしたら、正常に動作するようになりました。
878:デフォルトの名無しさん
04/10/10 17:25:54
キャッシュのすべてのエントリを取り出す方法はありませんでしょうか?
nsICacheServiceにvisitEntriesなるメソッドがあったりしますが…。
879:デフォルトの名無しさん
04/10/10 21:54:45
>>878
まさにそれですね。
var myCacheVisitor={
QueryInterface : function(aIID)
{
if (aIID.equals(Components.interfaces.nsICacheVisitor))
return this;
throw Components.results.NS_NOINTERFACE;
},
visitDevice : function(aDeviceID, aDeviceInfo){return true;},
visitEntry : function(aDeviceID, aEntryInfo){return true;}
};
こんな風に自分でオブジェクトを作って渡すと、cacheServiceが
myCacheVisitor.visitEntry(aDeviceID, aEntryInfo)を呼んでくれます。
falseを返すとそこで止まります。
URLリンク(developer-test.mozilla.org)
こんなのがあったんですね。
公式版xulplanetか…
880:878
04/10/10 23:00:08
>>879
すげえ、できました!感動です。
881:デフォルトの名無しさん
04/10/16 10:41:10
XBL から外部の、例えば hoge.js を読み込む方法はありませんでしょうか?
882:デフォルトの名無しさん
04/10/16 13:39:32
xul の名前空間指定しておいて
<xul:script src="..."/> とか >>242-246 の mozIJSSubScriptLoader 使うとか。
chrome:// 内じゃないと無理だけど。
883:デフォルトの名無しさん
04/10/18 01:40:17
<xul:script src="..."/>はエグイな。
884:881
04/10/19 18:35:24
>>242 を参考にすることで実現できました。 882 さんありがとうございました。
<constructor><![CDATA[
const scriptLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader);
scriptLoader.loadSubScript("chrome://somepackage/content/common.js", this); //this に対して読み込む
...
]]></constructor>
885:デフォルトの名無しさん
04/10/24 12:33:05
Firefox用の拡張のロケールマニフェストに仕様変更があります。
URLリンク(www.saintpatrickdc.org)
886:デフォルトの名無しさん
04/10/24 12:35:14
onkeypress とかのイベントハンドラでキー入力を検知できますが、
Input Method を使った(Atok,IME,ことえり,XIMとかの)日本語入力を検知する方法はありませんか?
887:デフォルトの名無しさん
04/10/24 13:22:01
>>886
C++とかでコードを書けば可能なのではないかと。
888:デフォルトの名無しさん
04/10/24 14:13:54
nsIDOMCompositionListenerをがんばって実装するしかないな。
URLリンク(lxr.mozilla.org)
889:886
04/10/24 14:59:40
nsIDOMCompositionListener::HandleEndComposition で処理できるように見えるけれども、
Components.interfaces.nsIDOMCompositionListener
が JavaScript で呼び出せないから、
Seamonkey の nsTypeAheadFind.cpp のように C++ でがんばるしかないようです。
URLリンク(lxr.mozilla.org)
890:デフォルトの名無しさん
04/10/24 23:56:34
インターフェイスをヘッダで定義してるのは、ネスケ時代の古いコードだね。
891:デフォルトの名無しさん
04/10/28 02:20:49
XULでファイルの圧縮はできますか?解凍はできそうなかんじですが。
892:デフォルトの名無しさん
04/10/28 17:06:14
できない。解凍はできる。
893:デフォルトの名無しさん
04/10/30 05:01:26
documentのHTMLソースを文字列として取得したいのですが、
document.getElementsByTagName("html")[0].innerHTMLの前後にHTMLタグをくっつける以外の方法はありますか?
894:デフォルトの名無しさん
04/10/30 05:30:18
XMLならnew XMLSerializer()のserializeToString()という手もありますが、
できればHTMLのまま取得したいです。
895:デフォルトの名無しさん
04/10/30 21:12:08
こんな方法もあったり。
var request = new XMLHttpRequest();
request.onload = function() { alert(request.responseText); };
request.open('GET', document.location.href);
request.send(null);
ただ、このためだけに通信を行わなくてはならないのが難ですね。
896:デフォルトの名無しさん
04/11/01 22:28:59
>>895
その方法でできました。やはり通信が必要な分タイムラグが生じてしまいますが。
続けて質問させてください。
バイナリファイルをFTPでアップロードする方法を教えてください。
アスキーならBookmarksFTPを参考にして
var sis = Components.classes['@mozilla.org/io/string-input-stream;1'].createInstance(Components.interfaces.nsIStringInputStream);
this._channel = SBservice.IO.newChannelFromURI(uri).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
sis.setData("HOGE", -1);
this._channel.setUploadStream(sis, "text/xml", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);
…
という方法で簡単にできたのですが…
897:デフォルトの名無しさん
04/11/01 22:32:30
>>895
その方法でできました。やはり通信が必要な分タイムラグが生じてしまいますが。
続けて質問させてください。
バイナリファイルをFTPでアップロードする方法を教えてください。
アスキーならBookmarksFTPを参考にして
var sis = Components.classes['@mozilla.org/io/string-input-stream;1'].createInstance(Components.interfaces.nsIStringInputStream);
this._channel = IO_SERVICE.newChannelFromURI(uri).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
sis.setData("HOGE", -1);
this._channel.setUploadStream(sis, "text/xml", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);
…
という方法で簡単にできたのですが…
898:デフォルトの名無しさん
04/11/02 05:28:18
fireftp(だったっけ? firefoxにFTPの機能を加えるやつ)のソースを覗くとわかるかも。
899:デフォルトの名無しさん
04/11/03 17:56:36
スクリプト上でどうやってバイナリを表現しているかにも拠りますが…
バイナリファイルのことだったら、そこのsisのかわりにnsIFileInputStreamを
もってきて、initすればそのまま使えます。
今日はnsIInputStreamの話ばっかりだな…
900:デフォルトの名無しさん
04/11/05 06:58:32
>>898
ありがとうございます。FireFTPのソースを見てまいりましたが、根本的にやり方が違うようでした。
ソースが非常に長くて大変ですが、じっくりと読みこなそうと思います。
>>899
BookmarksFTPを参考に以下のように書き換えてみましたが、
アップロード先を見ると、0byteのファイルとなっています。
アスキーのときはきちんとアップロードされたのでパーミッションとかには問題ないと思いますが。
以下、コードの抜粋ですみません。
var fis = Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream);
this._channel = IO_SERVICE.newChannelFromURI(aURI).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
fis.init(aBinFile, 1, 0, false);
this._channel.setUploadStream(fStream, "", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);
return true;
} catch(e) {
}
901:デフォルトの名無しさん
04/11/05 06:59:38
>>898
ありがとうございます。FireFTPのソースを見てまいりましたが、根本的にやり方が違うようでした。
ソースが非常に長くて大変ですが、じっくりと読みこなそうと思います。
>>899
BookmarksFTPを参考に以下のように書き換えてみましたが、
アップロード先を見ると、0byteのファイルとなっています。
アスキーのときはきちんとアップロードされたのでパーミッションとかには問題ないと思いますが。
以下、コードの抜粋ですみません。
var fis = Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream);
this._channel = IO_SERVICE.newChannelFromURI(aURI).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
fis.init(aBinFile, 1, 0, false);
this._channel.setUploadStream(fis, "", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);
return true;
} catch(e) {
}
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がポイント
904:デフォルトの名無しさん
04/11/06 05:15:11
>>903
遅くなりました、情報ありがとうございました。
とても簡単なことだったんですね……。
とりあえず、ここのLogに残ってるLinkを少しづつ読んでいって
もう少しましな知識をつけたいと思います。
905:デフォルトの名無しさん
04/11/06 22:00:18
このスレが900まで伸びるとは…
906:デフォルトの名無しさん
04/11/10 03:46:27
Firefox 1.0記念age
907:デフォルトの名無しさん
04/11/13 03:03:09
flyson氏もplus7氏もやめちゃって、潰える予感
908:デフォルトの名無しさん
04/11/13 19:02:18
>plus7氏もやめちゃって
誰が何をやめたんですか?
909:デフォルトの名無しさん
04/11/14 05:55:20
FIreFoxの検索窓を記述するにはどうしたらいいですか?
910:デフォルトの名無しさん
04/11/14 06:18:35
chrome://browser/content/browser.xulを見てみたらどうです?
911:デフォルトの名無しさん
04/11/14 18:16:36
gecko を lisp でコントロールしたいです
912:デフォルトの名無しさん
04/11/16 12:56:59
>>908
Geckoタブブラウザ Bagel ~ベーグル~
スレリンク(software板)
>>911
Geckoベースのブラウザを作ろう。
スレリンク(tech板)
913:デフォルトの名無しさん
04/11/16 13:23:18
Firefoxの拡張って開発中はどこに置いとけばいいんですか?
XULチュートリアルにあるように /chrome の下に置いて
installed-chrome.txt 書き換えて再起動しても読み込まれてない
みたいなんですが…
chrome URL で直接呼び出すとちゃんと出てくるので
文法エラー等はないはずです。
914:デフォルトの名無しさん
04/11/16 13:27:06
XULのキャッシュが効いている可能性大では?
about:configからnglayout.debug.disable_xul_cacheをtrueにしてみてください。
915:デフォルトの名無しさん
04/11/16 13:40:06
>>914
だめでした。何でじゃー
>>856-857に類似の質問があったけど肝心のリンク先が消えてる…
916:デフォルトの名無しさん
04/11/16 13:45:01
chrome.rdfは削除した?
そのページのキャッシュ:URLリンク(www.google.co.jp)
917:デフォルトの名無しさん
04/11/16 13:46:00
あるいは再起動したつもりがプロセスが残ってたりとか。
918:デフォルトの名無しさん
04/11/16 13:49:37
>>913
素直にinstall.rdfを書いたほうがいい。
jarにしなくてもインストールできるので。
URLリンク(kb.mozillazine.org)
919:デフォルトの名無しさん
04/11/16 20:41:10
XULを自分のプログラムに組み込みたいんだが、指針みたいなものってあるかな。
920:デフォルトの名無しさん
04/11/16 21:54:35
geckoを使わない限り、XULは面白くもなんともないと思う。
921:デフォルトの名無しさん
04/11/16 22:07:14
XULプログラミング始めたいのですが
読みやすくてシンプルなExampleのおすすめは何ですか?
私のスキルはC,Python,PHP,です
922:デフォルトの名無しさん
04/11/16 22:16:38
>>921
Sageとかコードが綺麗なのを参考にするといい。
GrepSidebarはお勧めしない。
923:デフォルトの名無しさん
04/11/16 23:16:22
>>921
いきなりコード見るよりはとりあえずXULチュートリアルから学んでみてはいかがでしょう?
一部古くて使い物にならない部分もありますが。
URLリンク(xul-app.hp.infoseek.co.jp)
あと、Tourisugari氏のコードもきれいです。
924:921
04/11/16 23:19:55
>>922ー923
ありがとうございます
さっそく始めてみます
925:921
04/11/16 23:28:51
元のチュートリアルが結構up-to-dateだったので
こちらを読んでみます。
URLリンク(xulplanet.com)
926:921
04/11/16 23:29:17
すいません
こっちでした
URLリンク(www.xulplanet.com)
927:デフォルトの名無しさん
04/11/16 23:41:02
ああ、そうそう、英語でいいならぜひそちらを。
928:913
04/11/17 09:17:00
>>916
一回削除したはずだったのですが
もう一度削除してやり直したらうまくいきました。
ありがとうございます。
929:デフォルトの名無しさん
04/11/17 09:31:27
Firefoxの拡張のお作法についてcurrent practiceをまとめたページはないですか?
*.xulとか*.jsは書けたのですが、それをxpiにするにはどういうファイルを
用意するかとか、xpi/jar内部のディレクトリ構成とかについて
ちゃんと書いてあるページが知りたいです。
一応、自分が使ってる拡張のソースを参考に見様見真似でinstall.rdfや
install.jsを書いたのですが。
あと拡張の更新情報のためにwebに載せるRDFファイル(update.rdf?)の書き方も。
930:デフォルトの名無しさん
04/11/17 11:48:19
>>929
URLリンク(www.bengoodger.com)
かなぁ。
もっとちゃんとしたドキュメントがあるかもしれない。
931:デフォルトの名無しさん
04/11/17 11:50:21
URLリンク(www.mozilla.org)
は?
932:929
04/11/17 14:24:18
>>930,931
おお、まさにこれです。ありがとうございます。
サイトマップからも探したのですが見付けられませんでした。
mozilla.orgのweb構造は多分に謎です……
933:デフォルトの名無しさん
04/11/17 20:01:31
>>932
> mozilla.orgのweb構造は多分に謎です……
禿同
934:デフォルトの名無しさん
04/11/18 04:46:12
>>929
URLリンク(www.mozilla.org)<)に変えると和訳ページに。
ちなみに自分もただいま勉強中です。
やっとこさ、Firefox 0.8系の拡張を1.0でInstall/Uninstallができる様になった
ところで、最近、少しづつ中身を書いております。
自分のやりたいことをGoogleで調べながら書いてますが
だいたい、上記の和訳かXULPlanetかPiro氏のページに飛びますね。
ここ共々お世話になっております。
935:デフォルトの名無しさん
04/11/18 11:02:09
Mozillaの履歴の情報をIEのWinInetのように
外部から操作することはできますか?
XULアプリからでもかまいません
936:デフォルトの名無しさん
04/11/18 12:33:24
URLリンク(www.xulplanet.com)
URLリンク(www.xulplanet.com)
URLリンク(www.xulplanet.com)
XULアプリならこのあたりで操作できます。
937:デフォルトの名無しさん
04/11/19 02:07:09
>>935
具体的には
var history = Components.classes["@mozilla.org/browser/global-history;2"].
getService(Components.interfaces.nsIGlobalHistory);
history.removeAllPages(); //← >>936 の nsIGlobalHistory.html参照
のように使う。rdf:history というRDFデータベースとしても利用できたはず。
938:デフォルトの名無しさん
04/11/20 17:00:05
URLリンク(mozdev.org)
RSSフィードのLink要素などの中に&や'が含まれていても
デコードすべきところでしてくれないてバグだが、拡張機能Sageだけじゃなく
Firefox1.0のライブブックマークにも同じ症状があるぽいよな…
仮に変換だけ実装しても脆弱性起こしそうだし、これはどう直すべきなんだろう。
自分はXULも何もさっぱりなので手も足も出ないがorz
939:デフォルトの名無しさん
04/11/20 18:32:20
>>938
本当にそんなバグがあるんだったら、
とりあえず、bugzilla.mozilla.orgの方を探してみた方がいいと思うよ。
940:938
04/11/21 01:02:20
>>939
そういやそうだったな。
とりあえずライブブックマークの方に該当すると思われるバグはこれ。
URLリンク(bugzilla.mozilla.org)
941:デフォルトの名無しさん
04/11/21 02:55:34
>>940
そのバグで報告されているリンク先は
&となっているので、まともなxmlじゃないと思う。
942:デフォルトの名無しさん
04/11/21 02:57:12
あ、やられた…
&amp;amp;ね。
943:デフォルトの名無しさん
04/11/22 14:56:54
944:デフォルトの名無しさん
04/11/24 21:40:10
二つのRDFをメモリー上で一緒にするスマートな方法ってありませんか?
945:デフォルトの名無しさん
04/11/24 22:40:56
一緒にするとは?
946:デフォルトの名無しさん
04/11/24 23:01:10
合成ってことです。
nsIRDFCompositeDataSourceはnsIRDFDataSourceから作れないようなので
947:デフォルトの名無しさん
04/11/24 23:18:19
var myCDS = Components.classes['@mozilla.org/rdf/datasource;1?name=composite-datasource'].createInstance(Components.interfaces.nsIRDFCompositeDataSource);
myCDS.AddDataSource(myDS1);
myCDS.AddDataSource(myDS2);
ではダメですか?
948:デフォルトの名無しさん
04/11/25 16:39:45
どちらかと言うと片方のRDFに別のRDFを合成して、OKを押したら合成後のRDFをflushさせて書き出したいんですよね。
まぁrdfのテンポラリファイルを作るか、すべてのリソースを移動すればいいんですけどね
949:デフォルトの名無しさん
04/11/25 17:59:38
RDFとして扱わずに単純なXMLとして操作してはどうだろう
950:デフォルトの名無しさん
04/11/25 18:00:49
うほっ良スレ!
951:デフォルトの名無しさん
04/11/25 18:43:31
URLリンク(xulplanet.com)
の copyAllToDataSource とかかな。
952:デフォルトの名無しさん
04/11/25 20:12:21
>>949
それは昔やってました。
thunderbirdでdocument.evaluateが使えなくRDF化している最中でつまずきました
>>951
それを使えばできそうですね。
ありがとうございます
#というかこんな物があったなんてorz
#独自でラッピング(?)してました。
953:デフォルトの名無しさん
04/11/25 21:16:34
バリバリにグローバルつかってるのは、
overlayした時に不便だから、結局自分で手書きした方が楽なんだよねぇ。
954:デフォルトの名無しさん
04/11/26 20:51:28
もう一個質問いいですか?
Seqが削除できません。
Unassertで関連を切っても残ってしまいます。
何か方法ありませんか?
#それともこっちのミスかなぁ
955:デフォルトの名無しさん
04/11/26 21:43:30
>>954
var ds = RDFContainer.DataSource;
var node = RDFContainer.Resource;
var keys = ds.ArcLabelsOut(node),
key,
value;
while (keys.hasMoreElements())
{
try {
key = keys.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
value = ds.GetTarget(node, key, true);
ds.Unassert(node, key, value);
}
catch(e) {
}
}
みたいにすれば消えるはず
956:デフォルトの名無しさん
04/11/26 22:00:40
それしてるんですよね。
Seqの中身をすべて削除してunassertしても空のどことも関連がないSeqが残ってしまいます。
#やっぱコードのミスかなぁ
957:デフォルトの名無しさん
04/11/27 00:12:33
>>956
スクリプトのどこかにミスがあって二重にassertしてるのでは?
>>955の
value = ds.GetTarget(node, key, true);
の代わりに、GetTargetsで全てのノードを取り出してunassertすれば
より確実だと思うけど、野暮ったいから自分のスクリプトではやってない。
958:デフォルトの名無しさん
04/11/27 11:10:21
assertはしてないです。
元からあるRDFを関数再起呼び出しでunassertするだけなんですが…
GetTargetsでも一つしか帰ってこない気がします。
もしかして削除の順番とかが関係するんでしょうか?
959:デフォルトの名無しさん
04/11/27 15:34:04
>>955 とか idl 見て今気づいたんだけど、Unassert って引数 3 個だったんだ。
URLリンク(piro.sakura.ne.jp)
を見てRDFの操作方法を憶えたから、Unassert(aResource,aProperty,aTarget,true);と使ってしまっている。
960:デフォルトの名無しさん
04/11/27 17:40:04
>>959
え…
本当ですね。
でも最後のboolがないだけなので最後をtrueとしても問題はないですね。
961:デフォルトの名無しさん
04/11/27 18:28:33
>>959
コピペして書いたので間違えてましたorz
962:デフォルトの名無しさん
04/11/29 12:38:04
Firefoxのブックマークサイドバーにツールチップを表示する拡張を
作ろうとしているのですが、デフォルトで表示される表示領域より
ツールチップのラベルが長いときのツールチップを消せません。
デフォルトのツールチップはどこで表示されているのでしょうか?
963:デフォルトの名無しさん
04/11/29 12:38:38
訂正
×ツールチップのラベルが→○ブックマークのラベルが
964:デフォルトの名無しさん
04/11/29 15:47:08
URLリンク(bugzilla.mozilla.org)
消すのはちょいと難しそう
965:デフォルトの名無しさん
04/11/29 17:04:35
む、ネイティブ側にあるのか
しかもそのコードが悪さをしてるのかtreecellにtooltip設定しても
まともに動作しない…
966:955
04/11/30 17:59:31
>>960
問題ないの? じゃあ直さないでいいや。
967:966
04/11/30 18:01:32
955じゃなくて>>959だった。
968:デフォルトの名無しさん
04/11/30 18:16:55
XULWiki 発見!
URLリンク(wiki.fdiary.net)
969:デフォルトの名無しさん
04/12/01 00:26:59
GJ
970:デフォルトの名無しさん
04/12/03 00:38:10
Thunderbirdの返信ヘッダカスタマイズ拡張を作ろうと思ったんだけど、
このコードでThunderbirdが即死する。
XULのプログラムは初めてなんですが、どこが間違ってるんでしょうか…
var quoteListener = {
onStartRequest: function(request , context) {
},
onStopRequest: function(request, context , statusCode) {
},
onDataAvailable: function(request, context, inputStream, offset, count) {
},
QueryInterface: function(iid) {
if (iid.equals(Components.interfaces.nsISupports) ||
iid.equals(Components.interfaces.nsIRequestObserver) ||
iid.equals(Components.interfaces.nsIStreamListener))
return this;
throw Components.results.NS_NOINTERFACE;
}
};
var msgQuote = Components.classes['@mozilla.org/messengercompose/quoting;1'].createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);
if (msgQuote)
msgQuote.QuoteMessage(params.originalMsgURI, false, quoteListener, null, false);
971:デフォルトの名無しさん
04/12/03 17:24:09
.createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);
->
.createInstance(Components.interfaces.nsIMsgQuote);
972:デフォルトの名無しさん
04/12/03 17:26:20
つーか、どこで死ぬのかわからないってことは、
これからも手探りでやるつもり?
自分には無理だ…
973:デフォルトの名無しさん
04/12/03 19:12:01
>>971
ありがとう。でも結果同じでやっぱり死んじゃう。・゚・(ノ∀`)・゚・。
QuoteMessage()の呼出し後に、onStartRequest()は実行されてるけど、
onDataAvailable()が実行されずにアプリケーションエラーで死亡(´・ω・`)
XULでプログラムしてる人って、xulplanet.comとMozillaのソースコード
だけで何とかなってるの?
974:デフォルトの名無しさん
04/12/03 22:59:02
>>973
あ、それは自分も経験がある。
引数のinputStreamをうそでも触っておいた方がいいみたい。
>xulplanet.comとMozillaのソースコードだけ
まあ、ない袖は振れないってやつですね。
975:デフォルトの名無しさん
04/12/03 23:00:19
Firefoxの拡張作る際の手順だけ誰か教えて下さい('A`)
976:デフォルトの名無しさん
04/12/03 23:06:43
>>974
>引数のinputStreamをうそでも触っておいた方がいいみたい。
ぜひ、詳しく(`・ω・´)
977:デフォルトの名無しさん
04/12/04 00:22:49
>>975
URLリンク(www.mozilla.gr.jp)
とか見てみたらどうでしょう。5のインストーラのとこはもはや古くてダメですが。
978:デフォルトの名無しさん
04/12/04 02:47:40
>>977
ありがとうございます。
そのページはすでに、すべて読みました。
私がやりたいのはFirefoxにメニュー項目を追加したりする、Firefoxの拡張を作る際の手順です。すんません('A`)
979:デフォルトの名無しさん
04/12/04 02:52:36
そういった親切なリファレンスはないので、
似たようなことをやってる拡張を探して中身を見るのがてっとりばやいのでは?
980:デフォルトの名無しさん
04/12/04 02:55:03
やっぱりそうですよね。どうもありがとうございました('A...
981:デフォルトの名無しさん
04/12/04 02:56:45
>>980
あなたが親切なリファレンスを書くとみんなが幸せになれる
982:デフォルトの名無しさん
04/12/04 02:58:12
>>981
今私もいつかそういう手順を説明した文章を書こうかなと思ってたところです。('...
983:975
04/12/04 03:49:31
ここがなかなか参考になりそうな予感がします。
URLリンク(www.mozilla-japan.org)
984:デフォルトの名無しさん
04/12/04 04:40:36
RDFの個々の要素についての資料が全然見つからないんですが、
どこかにありますか?
985:デフォルトの名無しさん
04/12/04 04:56:43
個々の要素とは?
986:デフォルトの名無しさん
04/12/04 05:07:28
たとえば、他の人が書いたコードを読んでいて、
document.getElementById("messagepane").contentDocument;
document.getElementById("statusbar-icon");
とかあった場合に、messagepaneやstatusbar-iconが何なのか、
ググっても全然見つかりません。
987:デフォルトの名無しさん
04/12/04 05:25:44
RDFではなくXULではないでしょうか。
XULを見てそのidを探してみてください。
988:デフォルトの名無しさん
04/12/04 05:37:08
ありがとうございます。XULの中にありました。
989:(盗´ー`盗)<こんばんは、安倍ぬすみだべ。
04/12/04 13:23:31
___
| 安 |
| 倍 | チーン…
| ぬ |
| す |
| み |
,,,. | 之 | ,'"';,
、''゙゙;、). | 墓 | 、''゙゙;、),、
゙''!リ'' i二二二二!゙''l!リ'''゙
∥ `i二二二!´ ∥
昌 |: ̄ ̄ ̄ ̄:| 昌
| ̄:|_|;;;l"二二゙゙l;;|_| ̄:|
| :|::::::| |;;;;;;;;;;| |::::| :|
| :|::::::|┌─┐|::::| :|
./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\
990:デフォルトの名無しさん
04/12/04 14:20:36
某拡張のセキュリティホール見ておもったんですが
システムアクセスの権限を放棄するようなことはできないのでしょうか。
>>659にそれっぽいことが書いてるんですが肝心のプロパティやメソッドは
スクリプトからアクセスできないものばかり…
991:デフォルトの名無しさん
04/12/04 14:25:27
XULといえば
アフリカの、ジンバブエを首都に持つかつての勇猛な民族ズールー族を思い出す。
現在では国名もジンバブエ?
992:デフォルトの名無しさん
04/12/04 17:24:29
XULってエックスユーエルって読むんじゃねーのかよ!ヽ(`Д´)ノ
993:デフォルトの名無しさん
04/12/04 18:32:28
XULの読みはズールじゃなくて、クスールだろ?
でも、Xylitolはキシリトールじゃなくて、ザイリトールだ。
994:デフォルトの名無しさん
04/12/04 21:59:08
↓次スレたのむ
995:デフォルトの名無しさん
04/12/04 22:00:55
↑テンプレ頼む
996:デフォルトの名無しさん
04/12/04 22:16:21
責任の擦り付け合い乙
997:デフォルトの名無しさん
04/12/05 00:03:40
テンプレ必要か?
998:デフォルトの名無しさん
04/12/05 00:06:53
んじゃ俺がテンプレなしで立てるぞ
999:デフォルトの名無しさん
04/12/05 00:10:15
Mozillaでプログラミング(XUL) その2
スレリンク(tech板)
1000:デフォルトの名無しさん
04/12/05 00:15:59
ume
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。