Mozillaでプログラミング(XUL)
at TECH
[前50を表示]
650:デフォルトの名無しさん
04/02/04 11:48
>>649
var URI =HTMLファイルのURI;
var doc = document.implementation.createDocument('', '', null);
doc.load(URI);
doc.addEventListener('load', docLoaded, false);
function docLoaded {
ここからdocを使用する処理を記述
}
651:649
04/02/05 01:03
>>650
どうもありごとうございます。m(_ _)m
できました。
652:デフォルトの名無しさん
04/02/08 18:42
ふーむ、私のお勧めはnsIDOMParserです。
...
var str=httprequestobject.responseText;
var doc=(new DOMParser()).parseFromString(str,"text/html");
alert(doc.documentElement.localName);
うろ覚えだから関数名は間違ってるかもしれないけど…
詳しくはここ。
URLリンク(www.mozilla.org)
653:デフォルトの名無しさん
04/02/09 00:17
650みたいなレーシングは結構怖いな。
イベントリスナーは先に追加してほしい。
654:デフォルトの名無しさん
04/02/15 00:05
最近思うんだけど、MozillaってUTF-8じゃなくて、
UTF-16がデフォルト?
それとも、スクリプトやRDFだけUTF-16なのか?
655:デフォルトの名無しさん
04/02/15 01:29
>>654
nsStringがUTF-16だからデフォルトはUTF-16なんじゃないの?
656:デフォルトの名無しさん
04/02/15 13:33
こんな感じで内部メインはUTF-16
URLリンク(wp.netscape.com)
657:デフォルトの名無しさん
04/02/16 22:22
>656
お、この図はわかりやすいなぁ。
ありがとう。
658:デフォルトの名無しさん
04/02/29 00:15
ふむむ。
Firefoxのブックマークをソートする拡張を作ってみました。
URLリンク(cgi29.plala.or.jp)
URLリンク(extensionroom.mozdev.org)
作ってるときは楽しかったんですけど、日本語のブックマークって、
文字コード順に並んでても、イマイチありがたみがないですね。
だから、日本語にローカライズしてないんですが…。
extensionroomに「bookmarks」カテゴリーを作るのが目標。
あと、人に頼まれて、about:*****を登録するスクリプトを書いたので、
about:wazillaとかabout:saitamaとかに興味がある人はどうぞ。
componentsディレクトリにインストールするタイプ。
URLリンク(cgi29.plala.or.jp)
拡張のoverlayで実行するタイプ。
URLリンク(cgi29.plala.or.jp)
659:デフォルトの名無しさん
04/02/29 00:28
about:****ですけど、
オリジナルのnsAboutRidirector.cppは、
httpプロトコルに飛ばすときにセキュリティのレベルを変えてますね。
chromeに行くなら心配はいらないんですが、
aboutのレベルでウェブ上のファイルを読ませると、
えぐいことができそうなので、気をつけてください。
660:デフォルトの名無しさん
04/03/06 02:48
URLリンク(bugzilla.mozilla.org)
にvoteしておきました。
でも、さっきまで2だったから、他にも投票した人がいるみたいだね。
661:デフォルトの名無しさん
04/03/10 09:54
>>658-659
面白い。プロトコル追加の解説があったので貼り付けておく。
URLリンク(www.nexgenmedia.net)
662:デフォルトの名無しさん
04/03/18 21:01
>661
読んでみました。
ところで、そのドメインって何やってるんですかねぇ。
ドキュメント自体はIBM名義なので、
就業中に書いたのかもしれませんが、
Doron個人のサイト?
663:デフォルトの名無しさん
04/03/18 22:00
Doron が Netscape(AOL) にいたときから写真やらなんやら置いて
weblog からリンクしてたから、個人的に自由に使えるサイトなんだろ。
664:デフォルトの名無しさん
04/03/29 20:27
---------- 再開 ----------
665:デフォルトの名無しさん
04/03/29 20:41
Emacsで動くGeckoのほうが欲しいな
そうすりゃXULなんぞ必要ないだろ好きなだけ機能追加できる
666:デフォルトの名無しさん
04/03/30 01:38
いいだしっぺの法則
667:デフォルトの名無しさん
04/04/04 17:39
今日のmozillazineの記事によると、
毎月第一火曜日はXULの日、らしい。
あさって(あるいは水曜日の朝?)だな。
668:デフォルトの名無しさん
04/04/04 17:46
XULは糞! XAML最強!!!
669:デフォルトの名無しさん
04/04/04 21:04
XULvsXAMLvsMXML の比較
URLリンク(www.surfmind.com)
670:デフォルトの名無しさん
04/04/05 01:20
>>667
talkbackを読めばわかるが、このスレで言うXULとは
あまり関係ない。
671:デフォルトの名無しさん
04/04/05 19:45
JavaScriptのOn/Offをカンタンに切り替えるような拡張はでてないのかな?
672:デフォルトの名無しさん
04/04/05 20:09
>>671
URLリンク(www.geocities.co.jp)
URLリンク(extensionroom.mozdev.org)
673:デフォルトの名無しさん
04/04/05 23:33
>>672
ありがとう。
674:デフォルトの名無しさん
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でやってました。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5395日前に更新/292 KB
担当:undef