1 :
Moziller :
02/04/25 12:12
うちのMozillaもよくフリーズします。
3 :
デフォルトの名無しさん :02/04/25 12:16
ずーるって何ができるの? UIを構成するための言語だっけ? その段階が不明なんだけど(藁
手持ちのコードからコピペしていじったら アプリ名とか残ってた。。。鬱。 ちなみに、Google Web APIをSOAPで呼び出すサンプルみたいなの作ろうとしてて その関係で。
>7 氏ね。 氏ね。 氏ね。 氏ね。 氏ね。 氏ね。 氏ね。 氏ね。
とりあえず駄スレになったぽ。 つか、俺がネタ書かないのが悪いような気もするけど。 Mozillaユーザ && 開発者 って時点で分母が小さいのかな。。。
10 :
デフォルトの名無しさん :02/04/27 09:58
うーん、emacsのminibufferみたいなのつけて、 ページ内検索やOpen Locationの入力に使うようにしたい、 と思っているのだが時間が取れなくて… # Ctrl-Fでdialog windowが出てくるのうざい。
>>10 検索に migemo 使えないかね。
2ch のスレ内検索に最適なんだが。
>10 Emacsのこと詳しくないのでミニバッファって何? とりあえず検索してGNU Emacs Manual見てみました。 Mozillaにああいうのつけたら確かに面白いかも。 というか、別のブラウザになりません?(w
>11 で、ついでにmigemoも検索。 面白いものが結構ありますねぇ でもMozillaってある意味Emacsと似た拡張の仕方ができるんで migemoサーバとのインターフェイス書いてやれば できなくもなさそうですね。 大改造が必要かもですけど(w
保全age
・TasksメニューがなくなってToolsメニューとWindowメニューになったので それを修正。 ・ツールバーの画像等修正。 ・Outlinerと(旧)Treeウィジェットが統合されてTreeウィジェットに なったので、それに伴う修正…はまだ。 Outliner使いこなせてないんで…(ウトゥ というわけで、またしばらくsage進行で
ちょー期待さげ。
>>17 とりあえず好意的に受け取ってみる。
Moz2chの需要ってどれくらいあるんだろう。。。
17です。 へんな書き方してすみません。 期待してます。 マルチプラットフォームで、いいなぁと思うんですけど。
マターリやってくと思うから 期待せずに待ってて。 マルチプラットフォームって(・∀・)イイ!!よね。。。 つーわけで、例によってsage 欲しい機能があったら、勉強して自分でつけるとか …うーん、まだ難しいな。
21 :
デフォルトの名無しさん :02/05/23 04:49
スキンよりも遙かに高度なカスタマイズが聞くってことですか? じゃあMozillaベース2chブラウザとか、板ごとにブラウザの外観が 変わったりできるんですかね。 シャア板にいくと全体が赤くなり 読み込み厨は、ザクの目が左右に 動くとか。 葉鍵板に逝くと、中止ボタンを雄と 「うぐぅ」とかwav音声流してしゃべるとか。 さくら板逝くと、リンク飛ぶたび 「ほええー」とかしゃべってうるさいとか。(w
>>21 やればできなくもないと思われ。
でもウザいかも(藁
24 :
デフォルトの名無しさん :02/05/24 00:15
ステータスバーの高さが大きくなってしまうような。。。 CSSでフォントをいじると幸せ? とりあえずまだ落としてみただけですが(藁
25 :
デフォルトの名無しさん :02/05/24 00:20
あと気になったこととしては、 なぜか昔のmoz2chのソースが紛れ込んでる(藁 別にライセンスとか指定してないし使ってくれて構わないんだけど 明らかにproxybarでは使ってなさげだし、捨てておいたほうが吉かも。。
うわ…迂闊にもageちまった。。。スマソ
>>25 激しくスマソ。
moz2ch のソースが入ってるのは…勘が良ければ理由分かるかも(藁
CSSいぢるのとかはその内やってみるです。
とりあえず今は「漏れ的に使えればオッケー」程度なので…
>>22 確かに、最初はすげえ!!とか
重うけど、最後はうぜえ!!に
なりそだね。(w
でも、飽きたころに、新バージョン
公開とか、さらにうざさ倍増。(w
はでで豪華な、布教活動仕様版がでたりして(w
>>27 とりあえず<toolbarbutton type="menu">使って
省スペース化に挑んでみたんだけど
ちょっと面倒くさい。。。
いや、全部いじればできるけどさ。
どうするのがよかろうか。。。
ちなみに、漏れは串使わ[なえ]い人なんで、あまり意味は持たなかったり。
>>29 省スペースって縦方向ですか?
横方向だとすれば現在のプロキシが表示されて欲しいんでアレで
いいと思うんですが…
>>31 (っつーか厨房もじらー殿なんだよね?)
それ(・∀・)イイ!!
って事でうぷだーてしてみました。
>>33 漏れは見た目しか作らなかったのに早いね!
とりあえず現在選択中の項目にチェックがつくように
メニューアイテム作るところで
menuitem.setAttribute("type", "radio");
とするとイイかも
串ないので、自分のPCに串たてて遊んでみたけど 結構便利かも。。。 Mozillaスレッドのほうで、宣伝してもいいかも
>>34 毎度毎度感謝です。取り入れさせて貰いました!
初期値を選択させるのがチトスマートじゃないんだけど(w
>>35 お誉めにあずかり光栄であります!
でも小心者なのでもちっとマトモになってから・・・
>>37 このスレ2,3人しかいないみたい。。。(藁
満足したならMozillaスレに宣伝してきてもイイかな?
いや、こういうの欲しい人もいるだろうし。。。
シンプルで(・∀・)イイ!!
>>39 宣伝してしまいました・・・
大丈夫かな・・・心配だ・・・(鬱
>>40 とりあえず評判は上々のモヨリ
そんなに心配しなくてもあのスレはマターリマターリだから(藁
とりあえず一安心・・・していいのかな(ドキドキ なんかあーゆー小物系で(・∀・)イイ!!アイデア無いですかねぇ。
うげ。複数ウィンドウ立ち上げると結構マズーな予感・・・ ウィンドウ毎のプロキシの設定って出来無いっぽいですねぇ・・・ navigator.js を見る限りでは・・・ さてどうしたものか・・・
>>43 というか、cuamってウィンドウ毎にproxy変えれるんですか?
それはなかなか強力な。。。
>>44 いや、そーでなくって、二つのウィンドウを立ち上げて、一個目のウィンドウ
の設定を変えると、二個目の方も勝手に設定は変わっちゃうんだけど、表示は
変わらないという不具合に衝突してしまったっつー意味です。
Cuam はどうだったかな・・・忘れました(汗)
IE 5 以上だと不具合が出るまま放置だったんで使うの止めちゃったんで・・・
>>45 <broadcast>だったかな、それが確かそういうのに使われてた記憶が。
Mozillaスレの方みたけど、なかなか厄介そう。。。
俺も見てみる。
続きはこっちで、了解
>>23 さん
向こうのスレでは嘘くさいこと書いてた(汗
var proxybarStartFlag = true; function ProxybarStart() { //dump("StartProxyBar start\n"); if (document.getElementById("proxypanel").getAttribute("hidden") == "false") { if (proxybarStartFlag) { ProxybarConstructProxyMenu(); // select proxy_now or (No Proxy) var pref = Components.classes["@mozilla.org/preferences;1"].createInstance(pb_nsIPref); var now = ""; try { now = pref.GetCharPref("proxybar.proxy_now"); } catch(e) {} var menu = document.getElementById("proxybar-proxyMenu"); var menuitem = menu.getElementsByAttribute("value", now)[0]; // if there isn't menu for "now", unset proxy now = menuitem ? ProxybarSelectProxy(now) : ProxybarSelectProxy(""); // put checked mark menuitem = menu.getElementsByAttribute("value", now)[0]; menuitem.setAttribute("checked", true); //removeEventListener ("load",ProxybarStart, true); // 代わりにflagをねかす proxybarStartFlag = false; } } //dump("StartProxyBar() end\n"); } としたらとりあえず治った。 Prefbarを先に入れる必要はあるかも。
diffとかとればよかったかも。。。 いまdiff入ってないから変更した部分コピペしたけど(汗 分かりづらくてスマソ。 要するにremoveEventListenerを使わずに フラグ使って一度だけ実行するようにしてみただけ。 removeEventListenerがなぜダメかはよくわからない。。。
>>48 サンクスコ。たしかにそれだと prefbar を先にインストールしてれば大丈夫みたいっ
すね。でも完璧を期すとなると、やっぱ prefbar に手を加えなきゃダメなんす
かねぇ・・・
一応修正版ウプしておきました。
ちなみにもう落ちます。どーも。
ちなみにもう落ちます。おやすみなさいませ。
げ、二重カキコスマソ。
某スレから引っ越してきました。 これで、4〜5人にはなったと思われ。
XPCOMは分けたほうがいいですか?
xulやjsでetagsが使えれば・・・
60 :
◆S0qIRC9I :02/05/27 15:40
addPrefListenerとかの関数が使えるはずです>proxy変更時の別ウィンドウへの反映 navigator.xulとnavigator.jsの頭のほうに出てきます。
ごめんなさい。ageちゃいました……
>>60 どもです。
時々ならageちゃっても大丈夫(藁
Moz2ch作ってたころは addEventListener("load", onLoad, true); とかやるのと <window ... onload="return onLoad();"> とかやるのとの違いが分かってなかったけど proxybarとprefbarの関係みてて、addEventListenerないと困るのがようやくわかった(藁 ちょっとMozillaのソース漁ってきます。
>>60 情報どーもです。その内調べてみます。今週はチト仕事が忙しく・・・
週末にはなんとか・・・
とか言いつつ、 preflistener 使い方分かりました! 確かにコレ使えばなんとかなりそうですね! prefbar もコレ使えば改良出来ますね。 しちゃおうかな・・・
>>65 おおっ、期待してます。頑張ってください〜
>>66 暇になったらその内・・・やるかも・・・やらないかも・・・
で、addPrefListener 使った暫定版ウプしてみました。
navigator.js の奴は pref なるグローバル変数使ってるんで、
自前で関数持たせときました。
あと
menuitem = menu.getElementsByAttribute("checked", true)[0];
menuitem.setAttribute("checked", false);
ってやると、check されてる要素を子メニューの中まで探してくれちゃうのね。
余計な事を・・・
さらに、余計なんだか有難いんだか分からない event bubbling の話なんですが、
proxybarOverlay.xul の中で prefMenu のところで oncommand が true を返して
るのに上にイベントが伝わっちゃうんですけど・・・ XUL チュートリアルによると
true を返せば上には伝わらないみたいに書いてあるみたいなんですが・・・
>>67 event.preventBubble()で強引に封じるのが一番確実かと。
69 :
デフォルトの名無しさん :02/05/29 00:20
ブラウザだけソースをダウンロードして改造してコンパイルしたいのですが、 何がなんだかさっぱりわかりません。
proxybarはやっぱり pref 機能外しました。なんかウザいんで。 その分、prefbarや uabar の機能を節操無くパクってステータスバーにブチ込む utilitypanels を只今作成中。 僕的に便利ならそれで良し。
utilitypanels とりあえずウプしてみました。 たぶんバグ満載ですが・・・ さらに無節操に取り込んだら便利そうなツールあったら紹介キボンヌ。
>>72 漏れはステータスバーが狭くなるとバランスが悪くなってマズーなので
utilitypanelsは合わないや。。。
入れてすぐ消しちゃったよ。
もっと柔軟にカスタマイズできたら(・∀・)イイ!!んだけどね。。。
場所とか角度とか。(謎
>>1 うーむ、やっぱ普通の人はステータスバーって重要なんですかねぇ。
僕にとってはアソコが一番無駄なスペースなんですよねぇ。
やっぱツールバーにした方が受けるんかな。
まぁ「私的ゴミ置き場」なんで、僕的にオッケーなら良しとゆー事で・・・
あぁ、ちなみに表示メニューでなんとなく表示のトグルぐらいなら一応出来ます。ハイ。
# なんか JavaScript のクラスの作り方とかイマイチ分からず結局 C チック
# なコードを書いてしまうのはどーにかならんものか・・・
>>77 JavaScriptのクラスを書く価値がある場合:
・「同じ種類のもの」がたくさんある。
・XPCOMのインターフェイスを実装したクラスが必要。
Javaと違って、やたらクラス化したりオブジェクト指向する必要はないと思われ。
実際、Mozillaに含まれるnavigatorとかmessengerとかの.jsも
ほとんど関数ばかりでCちっくに書かれてるし。
>>77 ツールバーにもステータスバーにも入れられるようにしてみたらどうよ。
設定とかで選べるようにしてみたり。。。
ツールバーはほとんど畳んでステータスバーの空き空間を持て余してる人は
ステータスバーに突っ込むだろうし。
どもども。
>>77 >>79 自分は、ステータスバーにあるproxybarが良いなあ、と思いました。
ステータスバーにもひとつボタンが何か置けるなあ、とも思いましたし。
ツールバーが2段になっちゃうと邪魔だし。
外野的意見ですんません。
げ、ウプしてた utilitypanels って proxy list の edit 出来なかった奴じゃん。 ウプするバージョン間違えてた…
スマソ。
# しかし誰も何も言って来ないとはやはり需要は無いっちゅー事かいのぅ…
>>79 うーん、考えてみます。でもなんかあの形態だとメニューバーがもう
一個出来るみたいに見えるかも…
>>80 どーもです。まぁステータスバー派が一人でもいて良かった(藁
>>81 proxy設定機能とか欲する人間は既にprefbar入れてて
重複する機能が無いproxybarのほうをダウソしてると思われ。
83 :
デフォルトの名無しさん :02/06/01 19:38
1.0.0+ 20020531 に utilitypanels を入れてみました。 proxy変更機能は問題無く動いてますが、あとのふたつは少し動作が変です。 これはもともとのバグだと思いますけど。
>>83 報告サンクスコ。でも、ちょっとこの時期サッカーで忙しいんで・・・(藁
その内直します。ハイ。
Moz2ch復活スレはまた別にたてたほうがよさげ? モナジラBBSにでも
>>1 ここでもいい気がするけど、monazilla の方が mozilla ユーザーで
ない人間にも注目されていいかもしれませんね。
復活期待しとります。
>>86 をを、懐かしい方が(藁
このスレしばらく使ってみて、他の話題と同居できないようなら
向こうにスレ立てることにします。
今日は<tree>ウィジェット弄ったりいろいろしてました。
久しぶりに弄ってみた感想としては
設計しなおしたほうがいいかも、とか。。。(鬱
とりあえず<tree>は使えるようになったぽいが、スレが見れない。。。 スレが見えるようになったら久しぶりにageてみるかも。
23 = 超ぉ〜Anne という罠
91 :
デフォルトの名無しさん :02/06/06 05:04
1.0リリースage
>>90 笑って頂けて光栄です。なにしろ真実なんですわ、マジで。
>>92 マジスカ(藁
最初誰かの騙りかと思ったよ
とりあえずこれからもマターリやってくんで、ヨロシクですm(_ _)m
94 :
デフォルトの名無しさん :02/06/09 15:17
<vbox onclick="..." context="..."/> というボタンをつくると、linuxでは左クリックでonclickで指定したものが動き、 右クリックでcontext-menuがでます。 これをWindows(Me)で試したら、右クリックで一瞬context-menuが出た後に、 onclickで指定したものが動いてしまうのですが、そういうものなんでしょか。 どこでも動く指定の仕方があれば教えて下さい。
右クリックもonclickで反応してしまうから onclickの中で if (event.detail == 2) とかやって、どのボタンがクリックされたか調べるが吉。 左ボタン、中ボタン、右ボタンが、それぞれ0,1,2のどれかになるはず。 調べるのはめんどいのでよろ。。。 # ちなみに<button>が押されたときのイベントは # onclickではなくてoncommandでとれば、 # 上みたいな問題は発生しないと思われ。
XULで開発するときって、Mozillaを再起動しまくるの?
>>95 oncommandだとダメだったので、
onclickで if (event.button == 0) とやったらいけました。
0,1,2が、左、中、右ボタンみたい。
ありがとうございました。
#しかし、linuxとwindowsで挙動が違うのは分かり難いなーーー
>>96 user_pref("nglayout.debug.disable_xul_cache", true);
すればキャッシュされず、必要になる度に読み込みなおす
んじゃなかったかなぁ... と遠い記憶を手繰ってみる。
>>97 理想はlinuxでもwindowsでも(もちMacでも)同じ動作をすることなんだけど
実際にはあまたのバグのおかげでいろんなところが違ってるよね
ま、気をつけて書けばたいてい上手く動くみたいだけど。。。
>>98 それであってたと思われ。user.jsやらprefs.jsを弄るのが面倒なら
prefbarを使ってもXULキャッシュが無効にできるね。
>>97 一応追試してみた。
<button label="omaemona" oncommand="alert('mona');" context="monaPopup"/>
<popup id="monaPopup">
<menuitem label="giko"/>
<menuitem label="zonu"/>
</popup>
こんな感じのコードで動いたけど。。。
こういう動作とは違うのかな…
>>100 ボタンと書いてしまったのが悪かったのかな。
<vbox/>は…ボックス?
googlebarをいじっているのですが、見様見まねでやってるので
いろいろ間違えてるとは思います。
>>101 XulPlanetのXUL Tutorial(邦訳)はご覧になりましたか?
まだでしたら、一読されることをお勧めします。
>>101 ボタンじゃなくて<vbox>に対してイベントハンドラを追加してたなら
oncommandはきかないですね。
>>102 部分的には読ませてもらってます。
でもgooglebarの中身から類推してやると大抵動いちゃうので
それで良しとしちゃってますね。
Moz2ch再開してたんですね。 今日、FreeBSDにmozzila1.0入れたんで動作テストぐらいは またお手伝いできるかも。
>>105 ああ、mozzila ってなんだよ。
回線切って逝ってきます・・・・
モズィーラ(・∀・)イイ!
モッツィラ?(伊)
>>105 Moz2chは…再開してたというよりは
再開しようとしているというか
再開しようとしつつあるって感じだったり。。。
久しぶりにコードみたら腐ってることに(改めて)気づいたので
今全体を見直しながら少しずつ書き直していってるところ。
XULプログラミングには、教科書的なモノがないので
色々と迷うところもあったり。
まだしばらくかかると思うけど、復活の際は是非よろしくです。
>>10 を見て、検索に関してカナーリショボイものを作ってみました。元Emacsユーザー
としてはコレはアリかな、と思ったんで。まだ検索のコードをパクってイヂっ
ただけなんで、あんま便利じゃない上にたぶん不具合満載なんですけが(w
一応ダイアログは出ません(爆)
http://www4.tkcity.net/~toshiki/xul/findbar.xpi に置いときます。ステータスバーに表示されるテキストボックスに検索したい
文字列を入れてエンターを押せばページ内検索出来るハズ。日本語も大丈夫っ
ぽい。"back" のチェックを入れると前方検索になる。
で、問題点をいくつか。
・常に検索用テキストボックスが表示されててウザイ
# グローバルのショートカットキーのハンドリングの仕方が分からない(涙)
・インクリメンタルサーチにしようかと思ったんだけど、FindNext の仕様上チト厳しそう。
# 挙動が多少変でいいなら出来るんだけど・・・
・findbar にフォーカスがある時点で Ctrl-R とかで前方検索に切り替えられ
るよーにしようと思ったんだけど、 onkeypress で受ける event.keyCode が
何故かゼロになっちまうんだが・・・
誰か解決策ご存知だったら教えて下さいm(_ _)m。
# もちろん自分でも調べてはみますが。
ちなみに 大文字小文字の違いは無視 最後まで検索し終ったら最初に戻る っちゅー事にしてあります。
Ctrl-F でフォーカスをテキストボックスに移せるようにはしたんだけど、 いつテキストボックスの表示を消すかが問題だなぁ。 常時表示でも別にいいかな?どーでしょうねぇ? ステータスバーがあんまり狭くなるのも確かに問題な気もしますし・・・
挙動変えました。Ctrl-F でミニバッファっぽいものが表示されて、 Esc で消えます。これなら多少はウザくないかな、と。 # なんかスレ汚しっぽくってスマソ
Ctrl-Gにも対応。とりあえずはこんなモンかなぁ。 URLBar (?) にフォーカスがある時に Ctrl-F や Ctrl-G が取れないのが 何故だか良く分からんのだけど。
>>23 さん
最新のnightryに入れてみましたが、
どこのURLにもアクセスできなくなってしまいました(;´Д`)
1.0で試してみます…
>>115 えぇっ!?マジっすか!??激しくスマソ・・・
と思って最新 nightly on Linux で試してみたけど問題無かったっす。
何か他に入れてたりしますか?
proxybar と prefbar の相性の問題みたいに何かあるのかもしれないので。
>>116 Piroさんとこのtab拡張とぶつかってる模様です…
>>23 サン
ども
超ぉ〜Anneさん(こっちで呼んでもいいのかな…)が
活発に活動されてるなか、こっちはMoz2chをショボショボやってたりします(汗
とりあえずテレホ人なんで、今夜見てみま。
ステータスバーへの機能組み込みだけど
汎用的な枠組みみたいなもの作ったほうがいいのかな。。。
>>115 殿
こちらで確認しようと思って、真っ新な最新 nightly に tabextension 入れ
てみたら、findbar を入れる前に既に mozilla が黙ったまま落ちるよーになっ
てしまったんで、良く分かんないです・・・tabextension がこちらではそも
そも動かないんで、原因究明は難しいっす(鬱
だた、ソースを見た限りでは、もしかしたらまた prefbar と同じで、原因は
addEventListener かもしれないっすねぇ。推測の域を出ないんですが・・・
で、一応(今は)findbar は addEventListener を必要としてないんで、コメ
ントアウトしたのをウプしてみました。ダメかもしんないけど・・・
>>1 殿
それでは私も厨房もじら〜殿とお呼びした方がよろしいでしょうか(w
僕はどっちでも構いませんけど。
ただ、基本的に
思い付きでコードを書く=>XULが分かんねぇ=>JavaScriptも分かんねぇ=>
なんとなく色々jarを展開してみる=>手探りでテキトーにコードをでっちあげる
という悲惨な作業形態なんで、汎用的な枠組みとかそんなご大層なものは
作れそうにありませぬ・・・(鬱
もーちっと XUL & JavaScript を把握しないと・・・
# addEventListener の第三引数も意味が未だに良く分からんし・・・
>>120 もじら〜ではございませぬ(藁
それじゃあ、コテハンうざいって言われるまでコテハンでいくことにします。
作業形態は似たり寄ったりです(汗
汎用的な枠組みってやつは漏れの妄想なんで、あんまり気にしないが吉。
XULもJavaScriptも触ってれば覚えられる言語だと思うんで
お互い精進しやしょ。
>>120 自分になにいってんの?
コテハンうざい。
>>120 =厨房もじらー殿
おっと、そいつは失礼いたした(汗
まぁマターリ頑張りませう。
>>121 ジサクジエンハケーン(藁
期待してます。私もなんか作りたいなあ。
>>124 いろいろ公開されてる小物を参考にするもよし
http://www.xulplanet.com/ で基本的な手順を学ぶもよし、で
最初は何か小さなものから作るのがお勧め。
漏れが最初に作ったのは、単にウィンドウを表示するだけのXULアプリ。
それだけでも結構手間がかかったので、それなりに達成感があったような。
そこから少しずつ機能をつけてプログラムを大きくしてみるとよいと思われ。
ちなみに開発中の画面はこんな感じ。 ウィンドウにアイコンつけてみたり、一部画像を追加したり。 機能が増えて作り直してるから、余計時間がかかりそうだけど(藁
>>119 起動すらできずに墜ちてしまうんですか?
むぅ……何故でしょう。
うちのMozilla1.x@Win32では問題なく動いてるんですが。
>>129 もしかしてpiro殿ですかっ!?
えっと、一応起動はしますけど、マウスいじってる内に落ちます。
nightly の方が悪いのかもしれないんでなんともかんとも。
ただ、nightly 単体だと、そんな事起こらないっぽいんですよね。
再現性が無いんではっきり申し上げられないんですけど、タブで右クリックして
メニューを表示してる内に落ちる確率が高い気がします。
>>厨房もじらー殿
moz2ch 激しく期待!!
ところで、Moz2chはMozillaのテーマに追従する形で作ってるんだけど Moz2ch使う予定の人で、Modern/Classic以外のテーマ使ってる人は テーマ名をよろしく。 希望が多かったものの中から*いずれ*テーマ対応XPIを作る予定。
>>131 =厨房もじらー殿
Lo-Fi 使っとります。出来ればよろしくです。
Lo-Fiは和じらの方にも入るみたいですし、対応する予定です。
>>130 タブのコンテキストメニューで落ちるんですか?
マウスジェスチャなどの他のユーティリティは
導入されていないんですよね。
ぬぅ。原因の見当がぜんぜんつきません。
>>135 参考になるか分らんですけど、いちおう。
うちのtrunk-2002061604 at linux では、
http://web.domaindlx.com/kazy/ のGooglebarとtabextensionsを
同時に入れて、about: を表示させてしばらく放っておくと落ちます。
でも、tabextensionsのみだと落ちなかったと思う。
>>135 そうです。マウスチェンジャとか一切使ってません。
まっさらな nightly に tabextension 入れただけです。(Linux)
# ちょっと手元に無いんでバージョンまでは分かりませんが、当日のnightlyで
# した。
で、findbar に menulist を使うようにしたらステータスバーの高さが
妙な事になってしまいました。とりあえずstyle="margin:0px"とかやって
多少は良くなってはいるものの、何故に menulist editable="true" と
textbox とではあんなに高さが違うんでしょうねぇ・・・
どうも、Win32では起こらない問題のようですね…… 最新版では一応、初期化でaddEventListenerを使わなくしてみましたが、これは関係ないでしょうか。
141 :
デフォルトの名無しさん :02/06/18 13:26
ちなみに「あと少し」というのは メインの機能(スレ読み)が一応できるまでなんで 最初のリリースはメニュー項目とか細かい機能が全然実装されてないです。 前回(凍結前)いろいろやったことを活かして 主な部分の再設計ができたので、 少しは見通しがよくなっているとは思います。 ですので、また超ぉ〜Anneさんや、他の方々も手出してくださいませ(藁
>>141 とりあえず漏れの手がつかない部分としては
右上のthrobberのアニメーション版を作ってホスィ(藁
あとは、折角オプーンソースでやってるんだから好きに作って(藁
(・∀・)イイ!!と思えば採用するし、独自版つくってもよいし。
>>142 ワタクシは設計には関わらないよーな細い所に手を出させて頂きたく(w
# でもアニメーションとか分からないからパス。
まずはギコナビに無く(と思う)って欲しいと思ってる機能として、スレッド
一覧の中でスレッド名を検索出来ないのがあるんで、その辺が moz2ch で作れ
たらいいなぁと思っております。ハイ。漏れの技量ではそーゆー小物系ぐらい
しか手は出せないと思うし・・・
>>144 じゃあ、板検索、スレ検索のほう、考えといてください(藁
とりあえず漏れがリリースしないことにはアレですけども。。。
>138 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1a) Gecko/20020618, build 2002061804 ではキチンと動いた模様です。findbarもキチンと同時に使えました。 とりあえずご報告まで。 >145,146 (・∀・)イイ!! でも検索に関しては責任は持てませぬ・・・ ヘタレなのしか作れないかもしれないし・・・ まぁαリリース版が出たら楽しくいじらせて頂きます。
>>138 2002061808 + googlebar + tabextension で落ちずに使えています。
私も、ご報告まで。
SourceForge.jpにプロジェクト作るのに賛成の人は挙手。
(・_・)/
(・_・)/
./
賛成3か。。。 今とりあえずアカウントはもう作っちゃって 新規プロジェクトの規約とかドキュメントとか見てみてるんだけど CVSほとんど使ったこと無くて使えるか自信ない。。。 まあ、いざとなったら超ぉ〜Anneさんにヘルプ求めるか(ダサッ>漏れ
ライセンスをどうしよう。。。 今のところパブリックドメインにしておきます。
155 :
◆q78mh/0k :02/06/20 00:55
(・_・)/
(・_・)/ ハイハーイ!
CVS は・・・Mac と Win 使ってらっしゃるんでしたよね、確か。
ttp://www.cvsgui.org/ ここに WinCVS と MacCVS なんちゅーのがありますよ。
# 使った事無いけど(藁
とりあえず送信した。問題が無ければそのうちメールが届くはず。。。 プロジェクトが承認されたらここで連絡します。
ところで、今更なんだけど騙り防止のため トリップ作ってきます。。。 トリップ用のソフト、どこにあったっけな。
>>158 cygwin でも使ってれば、以下のをコンパイルすれば簡単かと。
# たぶんインデント崩れるけど、悪しからず。
/* trip.c
compile: cc -o trip trip.c -lcrypt
usage: trip 'aaaa' 'zzzz' | grep hoge
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern char* crypt(const char*, const char*);
int main(int argc, char* argv[])
{
int i, i0, i1, i2, i3, i4, i5, i6, i7;
char *r, b[8], e[8], sa[3], s[9];
if (argc != 3) { fprintf(stderr, "usage: trip begin end\n"); exit(1); }
for(i = 0; i < 8; i++) {
b[i] = (i < strlen(argv[1]))? argv[1][i] : 0;
e[i] = (i < strlen(argv[2]))? argv[2][i] : 0;
}
sa[2] = s[8] = 0;
for(i0 = b[0]; i0 <= e[0]; i0++)
for(i1 = b[1]; i1 <= e[1]; i1++)
for(i2 = b[2]; i2 <= e[2]; i2++)
for(i3 = b[3]; i3 <= e[3]; i3++)
for(i4 = b[4]; i4 <= e[4]; i4++)
for(i5 = b[5]; i5 <= e[5]; i5++)
for(i6 = b[6]; i6 <= e[6]; i6++)
for(i7 = b[7]; i7 <= e[7]; i7++) {
s[0] = i0; s[1] = i1; s[2] = i2; s[3] = i3;
s[4] = i4; s[5] = i5; s[6] = i6; s[7] = i7;
sa[0] = i1; sa[1] = i2;
r = crypt(s, sa);
printf("%s\t%s\n", s, r+5);
}
exit(0);
}
>>159 おおっと、わざわざありがたいですが
もう拾ってきて計算中です(藁
一晩中で見つかるといいな。。。
トリップこれにしよかなぁ。。。 今も検索中だけどなかなかいいのが見つからない。。。
まだ開発者向けのみなのでXPIは作りませんでしたがソースをウプしました。
ttp://moz2ch.sourceforge.jp/nightly/moz2ch-2002062101.zip content,install,url,*/content/moz2ch/
skin,install,url,*/skin/lofi/moz2ch/
skin,install,url,*/skin/modern/moz2ch/
skin,install,url,*/skin/classic/moz2ch/
locale,install,url,*/locale/en-US/moz2ch/
*の部分は適宜配置して決めてやってください。
これで分からない人はまだインストールしないが吉。
>超ぉ〜Anneさん
>>164 見てもわかるように、とりあえず適当にですがlo-fiにも対応しておきます。
将来的にはmodern/classic以外は別パッケージ(XPI)にする予定ですが
さしあたり、超ぉ〜AnneさんはLo-Fi使うだろうと思ってつっこんでおきました。
SourceForge.jpのリリースファイルにもおいておきました。 次からはそっちに置くと思いますのでよろしく。
とりあえずダウソしたんですが、何故かパースエラー・・・ でもパッと見間違ってなさそうなんで、インストール方法が悪いのかも。 チト調べてみます。 # ただ今日は色々忙しいんで、いぢるのは明日以降になるかも ところで CVS にはブチ込まんのですか?
失礼しました。ニュースの方に CVS にも近々って書いてありますね。スマソ。
>>167 chrome.rdfは弄らなくても
installed-chrome.txt弄るだけで漏れはインストールできましたよ。
友人宅でMozilla 1.0@Linuxにもインストールしてみましたが普通にいけました。
もしかして、nightly使ってるだとかで動かなかったりして。。。
1.0以降はしばらく追っかけてないので変更点など把握してないですが。
CVSは、やり方調べながらぼちぼちやっていきますんで、少々お待ちくださいませ。
とりあえずcvsをリポジトリにおいてみました。 不都合とかあったら、また教えてくださいませ。。。m(_ _)m とりあえず適当に弄ってみてくださいませ。 ぶっちゃけ、管理とか良く分かってないんで、必要に応じてけちつけてくれたら ちょっと勉強して、教えて君やってきます(藁
>>169 ,170
やっと出来ました。resourceの前を":"でなくって","にしたら。
イマイチinstalled-chrome.txtの書式分かってないんですわ。スマソ。
お騒がせしました m(_ _)m
とりあえず CVS も co 出来ました。ほんではボチボチ見させて頂き・・・たい
ところなんですがチト忙しいので明日にでも。
>>171 お疲れ様です。
漏れはcvsの勉強しつつなんであんまりコード弄ってないです
ためしにいくつかciしてみたりしつつ
いろいろやってみます。
>>172 ども。ちょっと見た感じ、簡単そうなところから手を付けさせて頂こうかなと思います。
とりあえず、「表示」=>「表示/隠す」でとりあえずトグル出来るようにでもしようかな。
# 特にステータスバーフェチとしては component-bar も消せるよーにしたい(w
って、ホントに簡単そう(藁
そんで、その後は板内のスレ名で検索するのと、スレ内の文字列検索でも作りましょうか?
と思って一つ疑問が。
メニューの「板」ってヤツが sureList をターゲットにしてて、
「スレ」ってヤツが sureBrowser をターゲットにしてるんですよね?一応確認だけ。
と、まぁ浅いところをいじらせて頂くつもりですんでよろしくです。
ついでにもう一つ気になったんですが、dtd は UTF8で書いてて、 は sjis で書いてますよね。統一しちゃって全部 UTF8 で良くないですか? いや、文字コードは趣味の領域なので、嫌だったら別にいいんですけれども。
>>173 そのへんは、漏れもいまだに悩んでいるところっす。。。
内部的な概念は板ツリー、板、スレという風になってるんだけど
UI的には「板」っていうより「スレリスト」なんじゃないかと思ったり。
その辺の意見もあればぜひ欲しいです。
>>174 いや、漏れがいつも使ってるエディタがsjisのみなんで、ついつい(藁
WinではUTF8読めるエディタってフリーのエディタにあまりないから
sjisやらにしたほうがいいかな、とか思いまして。
UTF8のほうが都合が良いことがあれば、参加者の意見を汲みたいと思ってるんで意見はありがたく拝聴します。
何箇所かちょいちょいcommitしてみた。 こんな風に使うのか。。。 とりあえず、今は差分getを実装してます。今晩くらいにはできるかも。
>>175 その辺は確かに難しいところですねぇ。まぁとりあえずは現状維持で
いいんじゃないかと思いますけども。
で、文字コードの件に関してはまぁ揃ってないと grep が多少かけにくいとか
その程度の個人的な事情で思ったなんで、そーゆー事情ならsjisのままでいい
と思います。使い慣れたエディタって重要ですもんね。
で、ちょっと思ったんですが、こーゆーmoz2ch特有の話は微妙にスレ違いなよー
な気もしなくもないんですけど、どーしましょ?せっかく sf 使ってるんだし、
Developers のフォーラムを使うのも一つの手だと思うんですよね。ただ、そー
すると広い範囲の人の意見が聴けないかもしれないという両刃の剣。
moz2ch スレを立てるってのも一つの手かな?
その辺は厨房もじらー殿にお任せしますが・・・
じゃあ、Moz2ch開発スレ立ててきま。
他にネタ、ないのかな。。。
Policy ManagerとSidebar WindowをBugzilla投稿用のパッチに書き直してくれる心やさしい方はいないものだろうか…… とか言ってみる。
>>181 口出しすると協力させられそうだったので、黙っておこうとか思ったけど
漏れのスレなんでレスしてみる(藁
Sidebar Windowは感動を覚えましたが、今は使ってないし
Policy Managerもデフォルト主義者の漏れは
インストールしてなかったりするので詳しくなくて力になれないかも。。。
パッチに書き直すってのは実際どういう作業なのかもしらないし(藁
おそらくbugzillaの方にだすならコメントは英語にしなきゃだし コーディング規則は。。。JavaScriptは結構適当でいいみたいだから これはいいとして MPL/GPL/LGPL(だったと思う)のライセンスコメントを 各ファイルの先頭につける必要があるよね パッチって、まず何にパッチするんだろ。。。 例えばSidebar Windowなら comm.jarのcommunicator/content/sidebarあたりへのパッチになるのかな。。。 で、Policy Managerは comm.jarのcommunicator/content/policymanager/以下に ディレクトリ作ればよさそうだから comm.jar解凍したものへのパッチを作ればおーけーってところでしょか
184 :
デフォルトの名無しさん :02/06/27 21:10
XPCOMのリファレンスってwww.xulplanet.comのよりもうちょっと 詳しいものないでしょうか。 せめて簡単な説明文があるような。 MSDNに載ってるような戻り値とか引数の解説まであると期待して見たら まったく文らしいものが無かったのでよくわからんのです。 XUL and Script Referenceのはけっこう詳しく書いてあるのになぁ。
XULでトリップジェネレーター作ってください。
>>186 アルゴリズムがわかってれば作れるけど
JavaScriptで処理することになるから、速度的にはかなり不利だと思われ。
ちなみに、漏れはアルゴリズムもしらないけど。。。
>>187 アルゴリズム書こうと思ったけど、既に超ぉ〜Anneたんが
>>159 で
書いている事に気づいた。。。w
トリップジェネレータは総当たりだからCで書いたって
速度的にきついのにJavascriptで書いたら…(((( ;゚Д゚)))ガクガクブルブル
>厨房もじらーたん
XULでFTPのネタはあちらのスレでやるのはあまりにもスレ違いなので、
こちらの方でやろうと思いますです。。。
>>188 参考までに作ってみるのは面白いと思うけど
遅すぎて誰も使わない罠はありうる(藁
トリップジェネレータはcrypt使うけど、
cryptは別のとこの使うのかと思ったら
>>159 に書いてあったね。
作れなくはないと思われ。
ただ、積極的に作る動機がみつからない。。。
FTPできたら漏れも使うし手出し口出しさせてもらうつもり。
がんがれ。
とおもってもう一度読んだらやっぱりcryptないじゃん。。。鬱だ。
>>191 かこいいすね……
ただ、こういうのって、スキンをつけたらどうなるの?
今、PinBall使ってるんだけど、それなりに変更とかされるのかな?
>>192 スキンどころか、ロケールすら無視してゴリゴリですw
今んとこおいらのスキルが見かけとか気にする段階じゃ
ないもんで、とりあえずどこクリックしても無反応なこのUIに
機能を実装するのが最優先なのれすw
>>191 見てみた。カコ(・∀・)イイ!!ね。
とりあえず勉強しながらの開発は、段々と要領を得ていくものなので
基本的には開発の速度は加速していくものだから
そんなに心配しないことです。
>>192 見たところテーマに依存しない風なつくりなので
あらゆるテーマでそれなりに表示されると思われ。
Moz2chは、いらないところに凝ってるから
各種テーマに対応する差分テーマ作らなきゃなんだけど。。。(鬱
ユーザープロファイルが入ってるフォルダのパスってどうやって取得するんでしょう? そこに設定ファイルや個人のtempファイルを置こうかなーと思ってるのですが。
>>195 Piroさんのウェブページで解説されてたと思うよ。
198 :
デフォルトの名無しさん :02/07/01 00:12
2ch用ブラウザを使っていないので2ch用の各ブラウザが どうやってるのかは知らないのですが、例えば取得したdatファイルを HTML化して表示するには、一度ローカルに書き出してからそのローカルファイルを ロードするという方法が常道なのでしょうか? Moz2chもそうしてるようですし。
普通はそんなことしないよ 必要以上にディスクIO増えて遅くなるだけ
先に保存しておけば、保存し忘れるということはない。 例えクラッシュした場合でさえ。
普通はどうやるんでしょうか?
>>198 2ちゃんねる→Moz2ch→ログを保存
↓
データを処理
と並行してやってる。
Moz2chは、一応データを処理してからログに吐き出すようにしてるから
ローカルに書き出してからロードするというようにはしてないよ。
2回目以降はログ読み優先にしてあるから、ログ読みに逝くけど。
ちなみに、漏れの記憶が正しければMonazillaスレの初期のものは 一旦ローカルにデータを落としてから、 いろいろ弄るような形式になってたと思われ。 当時はDAT直読みができなかったから、データ解析が大きな処理で データのダウンロード、保存とは分けて考えたかったからだと思う。 違ったらスマソ。ツッコミよろしく。
>>202 んー、すいません。どこでデータ処理してるかわかりません。
教えていただけないでしょうか。
moz2chSure.writeEnd()でHTMLソースの作成が完了して、
f.write(this.html);でmoz2ch.htmlというローカルファイルに
書き出して、
document.getElementById("sureBrowser").loadURI(f.URL,
Components.interfaces.nsIWebNavigation.LOAD_FLOAGS_NONE);
でそのmoz2ch.htmlをロードしている、と思っていたのですが、
データを処理(変数内のHTMLソースを直接表示)するのはどこで
やっているのでしょうか?
あーごめんちょっと勘違いした。 ローカルに保存した.datをHTMLとして出力する時に、テンポラリファイルとして .htmlを作るようなことは普通しない、という意味で書いた>199
>>205 読み違えてた。スマソ。。。
普通は.htmlを作ることはないと思いますが、
Moz2chでそうしているのは
JavaScriptにはスレッドがないので(多分)
document.write()などJavaScriptのメソッドで
連続して大量のデータについて重い処理をすると、
固まったようになっちゃうので、
暫定的にファイル書き出し、読み込みするようにしています。
データを溜め込むバッファみたいなのを用意しておいて
setTimeoutなどで定期的にバッファを処理するようにしてやれば
うまくいくような気はしてるんですが、今はネットワーク周りと
基本的な設計とか構造に関することが気にかかってるので
そのあたりは後回しです(汗
ちなみに、差分getをサポートしたら、 逐次レンダリングをしようと考えてるんだけど そのときにもう少し効率のよい描画方法として 上の方法を試そうと予定しています。
Moz2chでは一時的に.htmlを書き出してからそれをロードしてるということで いいのでしょうか?そして、普通は(他の言語で作られている2chブラウザでは) そのようなことはせずに変数内のHTMLソースを直接表示させてると いうことでしょうか? それでこれに関連してもう一つ。 IEコンポでは自分で作ったHTMLを表示させるにはinnerHTMLを使ったり、 ちょっとかっこ悪いですがabout:<html>....</html>をNavigate2に 渡せば表示できますが、XULではどうやるのでしょうか。 .htmlに書き出して表示させる方法しか思いつかなかったので先のような質問を させていただきました。
たとえば<browser>エレメントをdocument.getElementByIdなどで取得して var browser = document.getElementById("myBrowser"); var doc = browser.contentDocument; doc.writeln("<html>…</html>"); とやればいけると思われ。 doc.innerHTMLでもいけるかも。
ユーザースタイルシートのON/OFFを切り替えたり、 適用するユーザースタイルをいくつも登録しておけるようなアプリを作ってください。
をぉ、
>>211 のような小物は漏れ向きかも(藁 ちょいと調べてみようかな。
# 暇があれば・・・
漏れの意見としては、Piroさんのコンテキストメニュー拡張に そういう機能があったような気がするので あっちを使うか、機能不足ならパッチ送って追加してもらうとか そういう方向のほうがよさげかと。 似たようなアプリが乱立すると(それ自体は悪いことではないと思うけど) 干渉するというか、そういうことがままあるので。
userContent.cssで定義されるユーザースタイルは、XPCOMから操作できるんでしょうか? 自分は方法を見つけられなかったんですが……
>>241 xpcom からと言ってよいのかわからんすけど
userContent.css のスタイルは DOM Inspector から
参照できるです。 その辺りは参考にならんすか?
XUL で遊んでいるんだけど、Javascript がいまいちわかりません。 みなさんは、何を参考にしているんですか?
>>215 ありがとうございます。確かにそれっぽい処理が行われてますね。
しかしどこがその部分なのかソースを見てもさっぱりわからないという自分の低レベルっぷりが涙を誘います。
217です。 >> 219 厨房もじらーさんありがとうございます。 参考にします。
>>221 インストールしようとしてみたのですが、インストール中にこけます。
以下はログです。ファイルの場所以外はそのまま載せます。
-------------------------------------------------------------------------------
file:///*****/custommenubar-092.xpi -- 07/06/2002 10:12:33
-------------------------------------------------------------------------------
Custom Menubar (version )
--------------
** initInstall: 0
** ィ鵈 (-214): ウn{2:
Install completed successfully -- 07/06/2002 10:12:33
>>222 を見てもわかるように、ファイルがコピーされてないようです。
install.jsの中を見てみたのですが、
おそらくperformInstall()する前にエラーチェックをしてないので、
インストールは成功とでます。
#たいていperformInstall()の前でこういう感じでエラーチェックします。
err = getLastError();
if (err == SUCCESS)
performInstall();
else
cancelInstall(err);
で、ちょっと使ってみましたが、メニューから辿る動作がない分 ラクといえばラクですね。ただ、冗長だと思わないでもないです。。。 個人的な希望としてはアイコンが入って、アイコンのみ、 アイコンとテキスト、テキストのみを切り替えられると(・∀・)イイ!! と思うです。 ところで、ツールバーの区切りは <label value="|"/>で実現してると思うのですが、 <toolbarseparator/>をなぜ使わないのかが気になる気になる。。。
印刷プレビューは、print(印刷ボタン)のポップアップから使えるので 要らないような気がしますが、どうでしょうか?
厨房もじらー さん。素早いコメント感謝です。 どうやら前のバージョンをアップしていたようです。失礼しました。 差し替えた(つもり)です。 最新版では <toolbarseparator minheight="16px"/> で処理してます。 アイコン入れるのは考えたのですが(そのためのツールチップ)、 テーマとの整合性を考えて保留にしてます。
印刷プレビューの件ですが; ブックマーク系もパーソナルツールバーやサイドバーに表示できるのに、 付けて欲しい、という人がいたので追加した、という経緯があり、 とりあえず入れてあります。 デフォルトから外しているのはそのためです。
>>227 最新版はまだ試してないのですが、
漏れがいろんなXULアプリを見てきた中で<toolbarseparator/>は
<toolbar tbalign="stretch">
<toolbarseparator label="LABEL"/>
</toolbar>
のように使われてたので、そうすると意図した表示になると思われます。
>>229 最初は <toolbarseparator/> だけでやってみたのですが、
なぜか空白だけで区切り線が表示されない。
(<menuseparator/> では表示されるのに)
悩んだあげく <label value="|"/> で強引に表示させていました。
同等の表現は、お教えいただいた、
<toolbarseparator label="|"/> でできるかと思いますが、
これまた、他の人に教えていただいた、
<toolbarseparator minheight="16px"/> の方が他の UI と同じ
区切り線がでるので、これで行こうと思います。
>>230 >>229 は間違ってました。
重要なのは、<toolbar tbalign="stretch">の部分で、
<toolbarseparator/>
にはlabelは要りませんでした。
Mozilla Messenger(メーラ)のコードはこういう風にしてあったので。
<toolbar tbalign="stretch">
<toolbarbutton label="Button1"/>
<toolbarseparator/>
<toolbarbutton label="Button2"/>
</toolbar>
のようにします。スマソ
>>231 確認しました。
tbalign="stretch" 入れると、 <toolbarseparator/> だけで
区切り線が表示されました。
次期バージョンに取り入れたいと思います。
いろいろなご助言、ありがとうございます。
ダウンロードページの Contributors に記載してもよろしいでしょうか?
「厨房もじらー さん@Mozillaでプログラミング(XUL) 」とか。
匿名希望も受け付けますが(w
>>232 いえいえ、XULプログラミングの発展を願ってます。
Contributorの扱いはそちらにお任せします。
Contributeというほどのことはしてないと思いますけどね(藁
ネットランナーに、PiroさんのXULアプリ多分全部と、PROXYBARも入ってた...
proxybar、さりげに有名に(藁
>>235 ×「さりげに有名」
○「なにげに有名」or「さりげなく有名」
>>236 非常に申し上げ難いのですが
「さりげに」は若者言葉として
既に定着した感のある
形容表現で御座いますが...
素直に受け止めろ。仲間内だけで使え。
>>236 >>237 >>238 さりげにって普段使うけど
意味は「なにげに」の場合が多いな漏れ。
と、反省させられたので
仲間内だけで使うことにするYo!
ありがd。
そんなことより
>>1 よ…じゃなくて
そんなことより、このスレでこういう話題しか書き込まれないのがサミスィ
漏れもそうだけど、XULプログラミング一般ってネタ少ないねやっぱり。
>漏れもそうだけど、XULプログラミング一般ってネタ少ないねやっぱり。
XUL 一般となるとまだ少ないけど、
http://pc.2ch.net/test/read.cgi/mac/1019023586/879-886n の bookmarklet なネタとかも合わせれば地道に増えてる気もする。
ちなみに bookmarklet については
http://www.squarefree.com/bookmarklets/ とか。
直接は関係ないけど XUL 開発に使えるかもしれない Tips をばひとつ。
● Chatzilla を JavaScript のちょっとしたテスト実行に使う。
・Chatzilla は *Client* タブの画面でコンソールに JS 式を書くと
直接実行される。
・コンソールで Ctrl + ↑ を押すと複数行入力が出来る。
送信は Ctrl + Enter。
・display() が組み込まれてるので、表示画面に返り値など表示できる。
これらを利用して…
-------------------------------------------
function setLoadImage(value)
{
var prefkey = 'network.image.imageBehavior';
var pref = Components.classes['@mozilla.org/preferences;1']
.getService(Components.interfaces.nsIPrefBranch);
pref.setIntPref(prefkey, value);
display("load Image mode: " + pref.getIntPref(prefkey));
}
setLoadImage(2);
-----------------------------------
とか入力すると、画像表示可・不可の切替が出来る。
現在のブラウザウィンドウを参照するときは
--------------------------------------------
const WINMAN = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator);
function getWin() { return WINMAN.getMostRecentWindow('navigator:browser'); }
// 上2行ブラウザウィンドウを取得するのに必要。
getWin().getBrowser().contentDocument.location.href = '
http://www.mozilla.org ';
-----------------------------------------------------
こんなかんじ。もっと楽したければ Contextmenu-Extension の
JavaScript TestRun や Custom Script つかうべし。
考えてみると、これ利用すればマクロ実行とかできそうな予感。
>>240 おお、スゴッ
感動した!
複数行表示とか全然知らなかったよ。
JSLibにはスクリプトを読み込むinclude()関数っていうのがあるんだけど
これも使えば、外部JSファイルを追加読みこみしたりできるし
マクロ実行とかできそう。
bookmarkletネタだと漏れは
javascript:resizeTo(640,460);
javascript:resizeTo(808,680);
javascript:resizeTo(1024,748);
とかやって、ウェブページ作成のときに
画面サイズの目安にしたりしてるくらい。。。
全然フツーだな、スマソ逝ってくる。。。
>>242 おぉ、そんな機能があったとは。
CustomScriptにも取り込もう……
ファイル読み込みができるんだから(XPCOM使って) 読み込んだファイルの内容を eval()してやっても同じことができる?とか妄想した漏れはアレゲですか?
>>244 げふ。もう短縮構文作っちゃいました。後の祭り。
247 :
◆q78mh/0k :02/07/15 04:42
>>247 情報マリガトー
Piro氏のFloating Sidebarが入ってるNe!
mozdev.orgはなんかパンク状態みたいだし
もっとリソースがいろんなところに分散されるといいんだけどね
そういう意味では
DeskModはテーマだけ配ってりゃいいって思ったの漏れだけ?
>>248 descmod の Floating Sidebar は Piro さんのとは別物よん。
Chatzilla の components/chatzilla-service.js みたいな
コマンドラインに -sidebar オプションつけたり
Mozilla 起動時の初期化とかしてるみたいなんだけどわけわかめ。
使いこなせれば Moz2ch にも利用できるんだろなーと思うんだが…
250 :
◆q78mh/0k :02/07/16 19:48
ツールバーに Home ボタンを追加するアドオン。
ここの方々はアンインストール方法分かると思うけど、
一応、そのページにも書いています。
(overlay 、chrome.rdf 削除と、installed-chrome 編集)
http://home.no.net/trihand/mozilla/home/en/ Deskmod は、以前から Mozilla 以外のものを配布していたらしく、
何でもあれのような感じもします。
mozdev はどうにかならないものかと思いつつ。
一応、ヨーロッパと米国のミラーがふたつくらい名乗り出てくれたところが
あるらしいので、どうやってミラーリングするシステム組むか、とか
あるのかも知れないです。同時分散できない部分もあるし。
>>249 >>250 Piroさんのとは別物でしたか。。。確かめずに書いてスマソ
起動時の初期化はJSComponentとしてどうこうで必要だった様な。
JSComponent関連は全然わからぬのですが(苦笑
Homeボタン、アイコンはよくできてると思うんだけど
ボタンは四つがまとまりがいいなあ。。。
どうせやるなら、ツールバーボタンの編集機能をつけるとか
もっと斬新なことをやってほしい感じ。
DeskModは、帯域に余裕があるなら何したってかまわないんだけどね。。。
っていうか、Mozdevはいろんなサービス提供しまくってるわりに
リソース不足だから、Webホスティング機能がパンク状態みたいな。。。
うーん。。。XULアプリ開発の中心的存在としては
もっとなんとかなってほしいですね。。。
>>232 入れてみました。普段は使わないんですけどね(藁
前もあったのかも知れませんが、ツールバーボタンのツールチップに
どのメニューのアイテムか(表示 | 大きくみたいに)
出るようになってるのが(・∀・)イイ!!と思いますた。
フルスクリーンモードは普段使わないので特に感想なし!
Mozilla 1.0.1では新タブボタンがタブバーに付くようなので
Navigator タブはいらなくなるかな。
で、やっぱりアイコンがホスィ。。。
XULアプリはテーマとの兼ね合いが難しいと思った今日この頃。。。
>>251 Homeボタンは、レディーメイドで、ヘルプ用に用意されているものですね。
ちなみに、それが既定の Toolbar 用アイコンで、ナビゲータの方は
small ツールバーモードになります。たしか。
>>252 テキストの Larger/Smaller がとても便利です。Navigator Tab ボタンは、
1.0.1 自体に組み込まれそうなので不要になってしまいそうです。と、253 と同じことを感じました、、。
1.0 の API の固定化というのは、ベースの部分なので、
フロントエンドは 1.0.x でも結構変わるのではないかなあ、と予想してます。
(でも、1.0.1 以降は大幅には変わらないような予感です)
Show/Hide の縦表示が長いので、これは Scroll ボタンを付けたほうが良いかな、
と思いました(XGA だと全部見えない)。
個人的には、ブックマークは、ContextMenu Extentions のコンテクストメニューからがベストかな。フルスクリーンはたまに使うほうなので、良いです。リストアするときも同じボタンでできるのですね。
ワンクリックアクセスで制御できる部分に絞ると他と棲み分けできて良いかも、とか、ツールバーではなくて、フロートにしてしまったほうが面白いかも、と勝手なことを考えました。
>>253 テーマとの兼ね合いが難しいところってどういう点でしょう?
自前で用意することもできますよね?
>>254 への追記(was >> 252 )
[Print Preview] にワンクリックで行けるのも結構便利です。
>> 254 へのさらに追記 思ったのですが、[back][forward][reload][stop] も組み込んで、 [open URL] も一応組み込むと、テキストオンリー的な使い方も出来て良いかも知れないです(メインのツールバーが無くても、ナビゲーション出来るようにしてしまう形)。 連続書き込み失礼。
> Show/Hide の縦表示が長いので、これは Scroll ボタンを付けたほうが良いかな、 と思いました(XGA だと全部見えない)。 すいません、Moz を再起動したらちゃんと出てきました。 自前で適当に弄ったもので少し実験していたからかも知れないです。
>>253 ども。
ツールチップの大項目は、
単品ではわかりにくそうなメニュー項目だけに付けてます。
「Navigator タブ」は、次期バージョンでデフォルトから外します。
アイコンが課題ですね。少し遊んでみます。
>>254-258 好意的な評価とコメント、ありがとうございます。
> フロートにしてしまったほうが...
いや、確かに面白いのですが、力量が伴いません。(藁
Piro さんのフローティングサイドバーを研究してみます。
> テーマとの兼ね合いが難しいところ...
アドオン作者側としては、ユーザーがどんなテーマを使用しているか
がわからないので、
自前のアイコンとユーザーが使用しているテーマとが
ミスマッチするとイヤ、という点があります。
全てのテーマに、メニュー項目に対応したアイコンセットが準備されている、
と言うのが理想なのですが。
> テキストオンリー的な使い方も出来て...
冗長度120%アップ(当社比)ですね。
これは比較的簡単なので、要望が多いようなら追加します。
Bugzilla に乱入する勇気がわいてきました。
これから逝ってきます。
>>260 不要なアドバイスかも知れませんが……
関数で最近アクティブだったNavigatorウィンドウを取得するようにして、
oncommand="navWindow().addBookmarkAs();"
とかすれば、フロート化したウィンドウからそれぞれの機能が使えます。
あとは、別ウィンドウ時はノッチを隠すとか、そんな感じでどうでしょう。
>>262 >
http://www.cc-net.or.jp/~piro/xul/tips/x0001.html なんか……今見たら、途中でドキュメントが混ざっちゃってますね(汗)
まあともかく、nsIWindowMediatorを使ってnavigatorのウィンドウを取得するという話です。
ただ、Moz1.0からはクラスの登録名が変わったのか何なのか、1.1くらいになるとこれだとエラーになります。
if (Components.classes['@mozilla.org/appshell/window-mediator;1'])
var WINMAN = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator);
else
var WINMAN = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService(Components.interfaces.nsIWindowMediator);
Moz1.0以降でしか動作させないなら、条件分岐させずに前者で決め打ちしちゃってOKではないかと。
あと、ノッチじゃなくて、グリッピーでした。ツールバー左端にあるアレです。
うぇー、なんか皆たのしそうぢゃぁー。 ワシ忙しくてなんもできん・・・ とりあえずネタフリでもしておきますと、誰か script debugger の 使い方分かる人いらはりませんかね? #次ここを見られるのは何日後だろう・・・
>>265 Venkman のこと? < script debugger
http://www.mozilla.org/projects/venkman/venkman-walkthrough.html の Venkman Test Drive 以下見たりしてやったこと
1. mozilla -venkman で起動する。(こうしないとデバッガモジュールがロードされない)
2. メニューの [Window] - [Moz2ch] とかで XUL App 起動
(contextmenu extention なら [Window]-[Navigator] とか)
3. 左上から二番目のソースリストからデバッグしたい js ファイルを選ぶ
4. 右上のソース表示画面で[-]をクリックするとブレークポイントが設定される。
5. いっぺん Moz2ch ウィンドウを閉じて[Window] から再度起動すると
ブレークポイントで止まる。
6. Step 実行させて prop this とか 右下のプロパティツリーで変数など
確認する。
これで Moz2ch とか Contextmenu-Extension の処理の流れを見たりしたんだけど…
・プロパティツリーの見方とかわしもよくわからん。
・App ウィンドウ何度も開いたり閉じたりしてるとばんばん落ちる(ぉ
・Mozilla 1.0 だと[Window] メニューがない。
open-dialog コマンドで chrome://... 指定すればいけそう。
・Mozilla 1.1b で 1.(mozilla -venkman) しなくてもよくなったのかな?
http://www.hacksrus.com/~ginda/venkman/faq/venkman-faq.html 見てくれ。
こんなんでどぉ?
"Creating Applications with Mozilla"買う人いる?
内容を見てみないことには。。。 漏れが知ってることしか書いてなければ必要ないし(藁 書籍というのは、得てして「最新」でありにくい、というのもあるしね。。。 XULプログラミングは動きが激しいから。
Utility Panelsはもう開発されないのですか?
>>269 作者さんが今忙しいみたいなんで(
>>265 参照(藁
今は動きがないですが
時間ができたらまた弄るんじゃないですかね
漏れにはわからないけど。。。
271 :
デフォルトの名無しさん :02/07/31 07:16
下がりすりぎ 一度上げておきましょう
272 :
デフォルトの名無しさん :02/08/22 22:08
age
273 :
今日 XUL の存在を知った奴 :02/08/31 02:16
Hello World を打ち込んで動かす事は出来たのだが、Mozilla 1.1 で 再起動せずに制作中の XUL を更新する方法が分からない。「chrome の キャッシュを無効にしろ」という記述があったが設定が見つからない。 良い方法を教えて下さい(毎回再起動じゃ実験にならん) あと、XUL を使って、どのページ閲覧中でも強制的に最上位に描画を するような物は作れるんでしょうか。具体的に言えば「ブラウザ内に 常駐デスクトップアクセサリ(マウスカーソルを追いかけるやつとか) を作ることが出来るのか?」ということなのだが
>>273 Preferences > Debug > Events
Mozilla1.1などのマイルストーンビルドでは項目が隠されているので要注意。
prefs.jsを直接いじるなら、 "nglayout.debug.disable_xul_cache" を有効にして下さい。
ウィンドウの最前面表示は、window.openDialogでフラグに ",alwaysRaised"を加えれば可能です。動的な変更はできませんが。
作れるウィンドウの形は矩形に限られるので、アクセサリの作成には向いてないと思います。
一つのウィンドウ内で動作させるだけで良ければ、<image>をCSSのポジショニングを使って配置するとかすれば実現可能かと。
>マイルストーンビルドでは項目が隠されているので要注意。 なるほど、だから無いんですね >prefs.jsを直接いじるなら このファイル自体ありませんね(Mozilla1.1)。grep しましたが nglayout.debug.disable_xul_cache の設定をしている js ファイル自体 見つかりませんでした。そこで default/pref/all.ja の最後に pref("nglayout.debug.disable_xul_cache", true); という記述を追加 してみたところ、キャッシュが無効になりました。これで色々実験が 出来ます >動的な変更はできませんが うーん、残念 >ウィンドウ内で動作させるだけで良ければ それは作ってあるので、これが Mozilla に常駐出来たら面白いかなと 思ったんですけどね
prefs.jsがファイル自体存在しない、ってどういうこと? 誰か理由が推測できる人、解説キボン
>>273 あー、なんとなくわかった
prefs.jsはもじらのインストールディレクトリ下ではなく、
プロファイル関係のディレクトリに入ってるんだが。
>>276 親ディレクトリ等が隠されている場合、prefs.jsなどの中身のファイルも見えなくなるようです。
>276,277,278 再度探したところ、 C:\WINDOWS\Application Data\Mozilla\Profiles の下のユーザー名の下の zlbi7tjz.slt というディレクトリ (なんじゃ、この名前は)にありました。Mozilla は D ドライブに インストールしてたので気づかなかった。ってゆーか、勝手にこんな 所にデータ作ってるとは... # ってゆーか、その前に Windows 版だって書いてませんでしたね。失礼 # しました。 ちなみにここの pref.js にも xul cache の設定は無かった。自分で 書く必要がありそうです。試してませんが。
>>279 変な名前のディレクトリを作るのは、セキュリティのためだそうです。
隠し設定は元々の設定ファイルには記述されていないので、大概は自分で書く必要があります。
勝手に、っていうけど、これが一番MSの意図に沿った管理方法だが。 IEやOEなどもこの方法をとってる。さらに言えばdoc/viewモデル。 シリアライズされたデータは実行ファイルとは分けて考える。 pref.jsにない項目をいじる場合、user.jsファイルを追加して そこに書きこむと反映される(pref.jsにコピーされる)、だったかな。
findbar(・∀・)イイ!! xpfe/components/find/resources/finddialog.jsも書き換えたいな…
>>283 鯖落ちですスマソ。ここ数日ずっと落ちてるみたいです。
ただ、当方現在(って何箇月前からだよ(涙))多忙につき、引越し先を
探してる暇がないんです・・・
# 「そのくらいあるだろ」と言われそうですが、なかなか・・・
>>282 勉強不足で申し分けないんですが、それ何ですか?
ちょいとディレクトリ掘ってみたけど見当たらず・・・
ついでにphoenixでproxy設定が出来ないんでproxybarを付けようと思ったら
何故かOverlayを読み込んでくれない模様。何か変わったんですかねぇ?
誰か何か知ってたら情報キボンヌ。proxyさえクリアできればphoenix常用なんですが・・・
# 当方ノートで場所毎にproxyが違うんでpref.jsいじるのはちょっと勘弁
鯖落ちでよかった。findbar 手に入れたかったんだけどちょっと待ちます。 phoenix は変わったっつーか、navigator.jar がなくなって browser.jar に、 toolkit.jar 内が大幅に変更されてる様子。navigatorOverlay.xul もなくて browser.jar!/browser.{xul.js} に全部書いてあるっぽいんでそっちに Overlay すればいいのかな?全部書き換えないと無理っぽい肝
286 :
デフォルトの名無しさん :02/09/09 01:57
>>283 まさか利用者がいるとは思っていなかったっす(w
どうもご利用ありがとうございます。ヘタレなブツでスマソ
なんでしたらテンポラリなメアドでも教えて頂ければお送り致しますが・・・
navigatorOverlay.xul は overlayinfo にも書いてあるし、comm.jar にも入ってる
んですが、もしかして使われてないんですか!?
それならproxybarも呼ばれないの納得ですわ・・・
さてどーすべぇか・・・
>>286 そんなのもあるんですね。
名前が被るとどーなるか分からないんで恐くてインストールしてないんですが、
ソース見た感じではツールバーで同じ事してるっぽいですね。
個人的にはステータスバー派なのですけど、
>>283 氏も別にステータスバーに
こだわらなければこちらでもよろしいのではないかと。
>>287 まぁ、Phoenixはnavigatorのコードを全部捨てて(XULレイヤで)ゼロから作り直してるわけですから、navigator用のアドオンは全滅と考えておいた方がいいかもしれません。
ちょちょいとbrowser.xul@phoenix見てみたんだけどどーもoverlayさせない勢 いのコードっぽいですなぁ。しょーがないから自分用browser.xulに書き変えてちまったぃ。 これで快適じゃ…ってアップデートするたんびにこんなことするのメンドクセェな…
292 :
デフォルトの名無しさん :02/09/11 10:52
>>284 > ちょいとディレクトリ掘ってみたけど見当たらず・・・
間違えて、1.0rc1のsource読んでた…
見つからなかった時のdialog windowがウザイので、
./xpfe/communicator/resources/content/findUtils.jsの
> gPromptService.alert(window, gFindBundle.getString("notFoundTitle"), gFindBundle.getString("notFoundWarning"));
を何とかしようと思っている。
「 ̄ ̄了 ハイハイ! l h「¬| どいてどいてぇ〜。 / ̄ ̄\__,ト、々/____ / /-∧i. / jテ、 f ̄ヨ / ./293) / / /.il iー――‐u' ̄ ./ /ー'' / / / / l l i' / l ヽ../ レ' l l . / _/ \ !、 lヽ____」 l . !、/ \. \ \lN =口= ト./ ト、__\/ト、/ト、 y l l  ̄( )y ) /l i l l Y''/ー' / .l l !、 l l./ / l l / / l/ ,/ i' l /_ ./l l`ー‐〈 ト.__」 L_``^yト._」、ー" `ヽ_」 `ー' `ヽ_」
297 :
デフォルトの名無しさん :02/09/21 19:06
Mozilla雑誌の掲載されていたね〜
300 :
デフォルトの名無しさん :02/10/13 01:09
ミ・д・ミ
Mozillaに関係ない自アプリから複数URLをNavigatorに送って、 それらを全て(将来的にはボタン押下毎にURLを上から5つ程度) 新規タブで開くという機能を追加したいのだけれど 実現方法に悩んでいます。できればアドバイスください。 XULを使用してMozillaと関係ないアプリと通信する方法はあるでしょか。 あるいは他の選択肢を選んだ方がいいでしょか。思い付いたのは↓3つ ・DDEのWWW_OpenURL→既存ウィンドウの選択中タブに表示される ・XUL→XPCOMはMSのCOMとはどうも別物っぽい(?) ・SideBar→実態はHTMLらしいので自分で更新して実現できる、か? #スレ違いだったらスンマセン
>>301 window.argumentsで引数が取得できますから、
navigatorではない別のダミーの(ウィンドウを生成しないような)XULアプリを経由してメッセージを送るとか、そんなのは駄目でしょうか。駄目ですね。
>>302 引数が読めますか。URLを列挙したファイル名あたりを送れば
実現できそうな気配。チョイ探ってみます サンクス
>>303 実際やるなら、流れとしてはこんな感じでしょうか。
NativeApps > "mozilla.exe -chrome chrome://receiver/content/ %1" で、
receiver.xulの中で
var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var nav = windowManager.getMostRecentWindow("navigator:browser");
if (nav) nav.getBrowser.addTab(window.arguments[0]);
else window.open(window.arguments[0]);
window.close();
みたいな。
ちなみに、最近のNavigatorは'\n'区切りのURLのリストを渡すと全てタブで開くようになってます。
getBrowser > getBrowser()
>>304 「'\n'区切りのURLのリストを渡すと〜」
なんと!!多謝。試してみま。
つか、XUL結構勝手が違うんで難儀してたあるよ。
>>306 念のため書いとくと、Navigator起動時の引数の話ね。
応用したら開いてるURLをGETしてIEで開くボタンとか作れそうですねえ。 マルチプラットフォームには難しいか。 あ、最初に他のブラウザを登録させればいいのかな。 このくらいならステータスバーでも邪魔にならないでよさそう。 問題は作り方がぜんぜんわかんないことなんだけどね。 |_・) 物欲しげな目でちらっ
xulやjsでetagsが使えれば・・・
>>308 ContextMenu-Extensionsからパクればよいのでは
>>310 その手が、って開いてみたけど・・・。
チュートリアルからやり直してみる。
ちょっとしたツールならXUL使った方が簡単かもしれませんが、 2chブラウザを作るとなると全部JavaScriptってのは逆にしんどくありませんか?
>>304 「'\n'区切りのURLのリストを渡すと〜」
1つのURLを開く事はできるんだけど、肝心の2つ以上がちと。
\nという文字列で区切ったりキャラクタコードの10,13,13+10で
区切ったり色々試したけどなんか駄目ですた。
Netscape/7.0@Gecko/20020823 使ってるんですが…
ひょっとして、最新Mozillaじゃないと駄目すか?
>>313 その通りです。
Mozilla1.2b以降の機能です。
>>314 センキュす。Mozilla取ってきま。
316 :
デフォルトの名無しさん :02/11/08 09:29
prefbarにページのソースを表示させるボタンを付けたいのですが onclickはなんと書けば良いのでしょうか。全然わからない。。。
>>316 getBrowser().addTab("view-source:" + getBrowser().contentDocument.location.href)
こんなんかな
>>317 location.hrefよりgetBrowser().currentURI.specの方がいくない?
気分的にだけど。
320 :
デフォルトの名無しさん :02/11/09 16:50
>>321 レス有難うございました。404の連続だったので、
例のサイトをWebArchiveで見ることにします。
xulやjsでetagsが使えれば・・・
Chapter 2 さぁ、はじめよう 君ができるだけ早くアプリを作れるよう、このチャプターでは2つの "Hello World" の例を示そう。 最初の例はブラウザウィンドウにロードされるシンプルな XUL ファイルだ。この例はスタイルシートや Java スクリプトの関数を XUL ファイルに追加することで拡張することができる。 第二の "hello World" の例はどうやってこれらのファイルをパッケ ージにするかを教えてくれる。これらはモジュールになっていて Mozilla アプリケーションや新しい Mozilla モジュール を作るのにぴったりだ。 これらの例は Mozilla アプリの開発について検討するための背景 を提供してくれる. 最初の例は基本的なファイルの作成と編集に焦点をおいている。 第二の例はMozillaアプリの構成と配布に焦点をおいている。
全ての "Hello World" アプリケーションのように、Example 2-1 に XUL の簡単な例を示す。 この小さな例は イベントハンドラの利用やウィンドウ内のレイアウト のためのボックスなど XUL プログラミングにおけるいくつかの重要 な面を示している。また、この例はファイルフォーマット、ネームス ペース、XULプログラミングにおける習慣などの言語についての一 般的な。。。を教えてくれる。 エディタを使って Example 2-1 を hello.xul という名前で保存し、 Mozilla で開いてみよう。ブラウザウィンドウの左上角にボタンが 見えるだろう。ボタンをクリックするとアラートボックスが表示される はずだ Figure 2-1 に表示されるアラートポップアップウィンドウを示す。 次のいつくかのセクションでこの例について詳細に説明しよう。 ファイルそのものやマークアアプの文法、XUL のネームスペース、 XUL ファイルの基本的なレイアウトについて解説する。
かなり適当&間違いあると思うけど、こんな感じでどうかな? 別スレ立てるかサイト作りたいけど一人で続けるだけの体力がない。
Mozillaで作るアプリケーション 目次 [chapter 00]: はじめに [chapter 01]: プラットフォームとしてのMozilla [chapter 02]: Getting Started [chapter 03]: XUL要素とその機能 [chapter 04]: MozillaアプリケーションのCSS [chapter 05]: Mozillaのスクリプト [chapter 06]: パッケージングとアプリケーションのインストール [chapter 07]: XBLによるUIの拡張 [chapter 08]: XPCOM [chapter 09]: XULテンプレート [chapter 10]: RDF, RDFツール, 内容モデル [chapter 11]: ローカライズ [chapter 12]: リモートアプリケーション [Appendix:A]: Mozillaのソースの入手とビルド [Appendix:B]: 開発ツール [Appendix:C]: プログラマのためのリファレンス [resources] : リソース [corrections]: 訂正
Mozillaで作るアプリケーション [PREV][TOC][NEXT] はじめに MozillaはただのWebブラウザではありません。Cascading Style Sheets (CSS), XML-based User-interface Language (XUL) や eXtensible Binding Language (XBL)、Resource Description Framework (RDF)などのXMLアプリケーションなど の標準技術を用いてクロスプラットフォームなアプリケーションを作成するため のフレームワークでもあるのです。 MozillaのレンダリングエンジンのGeckoは、XPConnectやXPCOM、Mozillaのコン ポーネントモデルなどの他の技術とともに、このフレームワークの一つとして働 きます。また、Mozillaの開発環境はJavaScript, C++, C, Python, IDLなどのプ ログラミング言語も使用します。 Mozillaのフレームワークは、MozillaをベースとするNetscapeのブラウザ (Netscape 6.xや7.x)、GaleonやChimeraなどの他のブラウザ、ChatZillaや JabberZillaなどのチャットクライアントにも使われます。また、アプリケーショ ンの開発者は、Mozillaを開発ツールやブラウザ自体の拡張機能、ゲーム、その 他のアドオンを作るのにも使います。 この本は、Mozillaでどのようにしてアプリケーションを作るのかを説明し、 Mozillaの強力なクロスプラットフォームの開発環境を使ってあなたがプログラム を作るための手順をステップアップ形式で提供します。また、他の既存のアプリ をMozillaによる開発の可能性のデモンストレーションのために例として含んでい ます。
Mozillaの背景
Netscape Communications社(以下Netscape社)が設立された時、Netscape社は、
当時インターネットへのアクセス用に一番普及していたNCSA Mosaicよりも、優れ
たブラウザを作ることを計画しました。この新しいアプリは「Mosaicキラー」とな
るものでした。そうこうするうち、このフレーズは「Mozilla」と略されるように
なり、Netscapeのブラウザのコードネームとなりました。
MozillaはNetscapeの製品一つの代名詞となりました。そして1998年3月31日、
http://www.mozilla.org/はNetscapeの次世代のCommunicator 5.0ブラウザ環境を
開発するためのサイトとして発足しました。この時点で、Mozillaはオープンソー
スのプロジェクトとなり、Netscapeでの起源を越え、独立した存在となりました。
NetscapeがCommunicatorのソースコードをオープンソースのコミュニティへ公開し
た時、それは前例のない行為でした。有名なソフトウェア企業で自社の商品のソー
スコードを公開したところは、それまでまったくありませんでした。この時、この
ことは、多くのソフトウェア業界の人々や報道関係者の間で議論を呼びました。
多くの企業が、Netscapeに続いて、彼らの製品をオープンソースコミュニティへ公
開しだしました。サン・マイクロシステムズは
http://www.openoffice.org/ や
http://www.netbeans.org/などを含むいくつかのプロジェクトに資金援助をしまし た。アップル社も、新しいOSの核となる部分を、Darwinと呼ばれたオープンソース
のプロジェクト(
http://developer.apple.com/darwin/ )を元に開発しました。
Mozillaのソースコードが公開されて1年後、Netscapeの古参の経営者の一人である
Mike Homerはこんな風にコメントしました。「MozillaはNetscapeよりも大きく、
そしてそれがMozillaの意義です。Mozillaは本質的に、ある一つの商業的な存在に
よって後援される共同のプロジェクトです。mozilla.orgのスタッフの中には
Netscapeの社員の人もいますし、提供されたソースコードは以前はNetscapeが所有
していました。しかし、そのソースコードがいつかそれ自身独り歩きするようにな
るだろうというのは真実です。」
このプロジェクトが始まってから、多くのNetscape(今ではAOL)の社員がその進
歩に協力したのは事実ですが、多くのNetscape社外の人々もこのコミュニティに参
加しました。Mozillaコミュニティは元々のmozilla.orgを超えるものに成長しつつ
あります。また、Mozillaの支持するニュースサイトの
http://www.mozillazine.org/ や、Mozillaのアプリケーションのプロジェクトを擁する
http://www.mozdev.org/ など、他の有用な情報を提供するコミュニティも生まれました。
IBM, Red Hat, AcitveState, サン・マイクロシステムズなどの企業もMozillaのコ
ミュニティに協力しています。例えばRed Hatは、それまで彼らのLinuxディストリ
ビューションに含まれていたクローズドソースのNetscape 4.xブラウザ環境に対し
て、オープンソースのソフトウェアの選択肢を与えるために、Mozillaのサポート
を提供しています。AOLも、最新のコンピュサーブのクライアントやAOLのクライア
ントでのMozillaの利用を研究しています。
Mozillaの全ソースコードは、興味を持っている人なら誰でも入手することができ、
それ故にMozillaコミュニティは、バグ報告や修正パッチ、新しい開発者の増加な
どの利益を得ています。Mozillaがオープンソースのソフトウェアとして最初に公
開された時からプロジェクトに関係していた人々とともに、コミュニティに参加し
た新しい人たちや企業が、Mozillaプロジェクトの方向性や成果を形成するのに協力
しました。
Mozillaの現状
オープンソースのプロジェクトが発足してから4年後の2002年6月5日、Mozilla
1.0はリリースされました。この本の中の例は、このMozilla 1.0や1.0.x系列の
全てのメンテナンスリリースで動作するように書かれています。
1.0のリリースの後、Mozillaには二つの主な開発系統が作られました。安定して
いて息の長い1.0ブランチは、1.0リリースのコードのバグを修正することを目的
としています。このブランチから定期的に、「バージョン1.0.x」と名付けられた
メンテナンスリリースがリリースされます。全ての1.0.xリリースは元々の1.0リ
リースと完全に互換性があるように(もちろんそれよりもバグは少なく)設計さ
れています。
もう一つの開発のブランチは、Mozilla CVS trunkから作られます。この開発の努
力からの新しいリリースは「1.x」と名付けられ、新機能やアーキテクチャの変更、
あるいは他の付加的なプロジェクトによる発展などを含んでいます。
これらの新しい1.xリリースは、Mozilla 1.0や1.0.xリリース向けに作られたアプ
リケーションと完全な互換性はないかもしれません。しかしmozilla.orgは、将来
の2.0のリリースまでの間、1.xシリーズを通じて、API(XULやXBLの文法も含めて)
をフリーズして互換性を維持することを約束しました。詳しいことは
http://www.mozilla.org/roadmap/mozilla-1.0.htmlを見て下さい 。
Mozilla自身流動的な開発のもとにあるため、Mozillaの新バージョンがリリースさ
れた時、このフレームワークに基づいたアプリケーションは何らかの影響を受ける
かもしれません。私達は、みなさんがMozillaの状態についての最新の情報を得ら
れるよう、ロードマップ(
http://www.mozilla.org/roadmap.html )を見ることを
お勧めします。
私達はまた、同様に、この本の例を動作させる時にはMozilla 1.0.xを使うことを
お勧めします。そして、Mozillaが期待に応えられるように、最新の1.xリリースを
使うことも推奨します。
以前、ヒマだったので全訳してみるかーなんて思ってやり始めて挫折した、その残骸です。 0章途中までだし。技術情報含まれてないし。役に立ちませんね。
おお、すげぇ。
>>331 に続いてChapter2訳してるけど他にやってるひといるかな?
この本が対象とする読者 この本は主に、全く新しいプラットフォームである、Mozillaの提供するフレーム ワークの探求に興味を持っているプログラマ(と、プログラマを目指す人たち)を 対象にしたものです。しかし、Mozillaベースのクロスプラットフォームのアプリ ケーションを作る上で、あなたがプロのプログラマである必要はありません。 以降の章で示されるように、Mozillaベースのアプリケーションを作り始める上で あなたに必要な技術は、CSS, XML, JavaScript といった既に大抵のWebデベロッ パーによく知られているいくつかの技術の基礎知識だけです。実際、これはMozilla ベースのアプリケーション開発の大きな利点です。開発における学習曲線はC, C++, あるいはJavaのような他の選択肢に比べて緩やかです。 あなたのアプリケーションは自動的にクロスプラットフォームなものになるでしょ う(もちろん、特定のプラットフォーム向けのアプリケーションを作ることもでき ます)。また、Mozillaを自分のコンピュータで利用しているユーザにとって、イン ターネット上で簡単にインストールすることができるものになるでしょう。他にこ んな事のできる開発プラットフォームがあったでしょうか?
あなたに必要な技術は > あなたに必要なのは の方が良かったですね。
この本は、読者がJavaScript, CSS, HTML, XMLをある程度のレベルまで身につけて いるものと想定して書かれています。もしこれらの技術についてまだあまり熟達し ていないなら、この本を読む上で、それらの技術について専門的に扱っている他の 本を併せて読むといいでしょう。オライリー&アソシエイツの有用な本の中には、 「JavaScript:決定版ガイド」「Cascading Style Sheets:決定版ガイド」「HTML& DHTML:決定版ガイド」「ラーニングXML」「簡単なXML(第2版)」などがあります。 Mozillaで、あるいはMozillaと一緒に新しい方法で使われる概念と新しい技術が、 それらの本の中で詳細に説明されています。 この本はまた、読者がMozilla 1.0以降をコンピュータにインストールしていて、 テキストエディタあるいはワードプロセッサとともに利用できる状態を想定してい ます。Mozillaは今やほとんどのパーソナルコンピュータ上で動くので、互換性の ある(Mozillaが動く)プラットフォームを探すことはそう難しくありません。 Mozillaの詳細なシステム要件については、mozilla.orgのサイトで見つけることが できます。
よく考えたらそのうちオライリーから日本語訳でそうだ。。。
>>346 あんまりアテにできないと思いますよ。
海の向こうは、よっぽどの売り上げが見込めるようでないと日本語訳出さないって言ってるみたいですし。
技術書によっぽどの売り上げを見込まれてもな〜
赤字が出ない程度の売り上げは必要ですよ。
最初は自分がわかればいいやって感じで 超適当に訳してたけど、◆YNS0qIRC9Iみたいに ちゃんと訳してみようかな? ちゃんと訳すとなると自分の語彙力のなさが 露呈するなぁ。。。
>>350 読んで意味が分かればそれでいいんじゃないでしょうか。実際、自分も所々意訳気味ですし。
うまく訳せる人が取り組んでくれていないのだから、うまく訳せなくても自分たちでやるほかないです。残念ですが。
sourceforgeに登録してCVSで管理とか。
まとめサイトは必要かと。
帰ってきたけど誰もやってないみたいなので やってみる。 プロジェクト名は何にしよう?
ズルズル翻訳 XUL document(プ なんてのどーよ?(w
襟巻蜥蜴邦訳計画
第3章 XulエレメントとXULの特徴 XML-based User interface Language(XUL)はアプリケーションのUIをつくるのに必要な部品(widget) を全て備えている。タブ、入力フィールド(textarea)、ボタン、メニューなどがそうで、 中には、普段は必要性をほとんど感じないようなもの(例えば<stack>や<colorpicker>など)もある。 第2章ではウィンドウや基本的なアプリケーションを作るのに必要なXULエレメントのいくつかを紹介した。 本章は、XULの概観、振るまい、そして一般的な用法を説明する。 包括的な内容ではないが、本性を読めば、独自のXULアプリケーションを 作り始めるための情報としては十分だと言える。 特に、付録CのXULリファレンスと併せ読めば、いっそう理解が深まる。 本章で説明するXULエレメント(メニュー、ボタン、ボックス、ツリーなど)はほとんどのアプリケーションで で必要である。そして、本章ので使っている例は汎用的である。だから、自分の用途に合わせて、 その例を組み込んだり、カスタマイズしたりできるだろう。この章には多くの情報を詰め込んだから、 アプリケーションを作る際は役に立つ事請け合いである。
XULドキュメントオブジェクト XULファイルで最も重要な部分はドキュメントオブジェクトである。 HTMLと同様に、documentはXULドキュメントそのものの中身を指すオブジェクトであり、 外側を指すウィンドウオブジェクトと対を成すものである。 そしてドキュメントにはメソッドが用意されている。 メソッドは個々のエレメントを取得したり、ドキュメントの構造を操作したり、 スタイルのルールを変更(updating)したりするのに使われる。
sourceforgeの使い方がいまいち分かってないけど、 sourceforgeのアカウント晒してもらえればxuldoc-jaの プロジェクトに追加しますよ。
CVSより、Wikiの方がみんなで編集できていいかなぁ。。。
Wiki 微妙に浸透しつつあるな…
(訳注:要素や属性という言葉を使わずに、カタカナ語で統一) ドキュメントオブジェクトにはgetElementById, getElementsByTagName, createElement, createTextNode といったメソッドが用意されている。これらは、DOMや実ドキュメント(訳注:actual document domは実体がなくても良いので…) を扱うためのメソッドである。DOMについては第五章においてさらに詳しく取り上げる。 ドキュメントオブジェクトはこれらのメソッドの他にも、ウィンドウのwidthとheight、ポップアップノードのプロパティ、ツールチップノードのプロパティ、ドキュメントエレメント(documentElement) などを備えている。 なお、ポップアップノードのプロパティは、ポップアップ表示しているエレメント(何がしかの内容(content)を他のものの上に表示するXUL widget)にアクセスするためのものであり、 ツールチップノードのプロパティもツールチップを表示するエレメントにアクセスするためのものである。 そして、ドキュメントエレメント(documentElement)はドキュメント本体にアクセスするためのものである。
var docEl = document.documentElement; var secondLevelNodes = new Array( ); for (var I=0; I<docEl.childNodes.length;I++) { secondLevelNodes[I] = docEl.childNodes[i]; }
あ、まちがえてタブごと消してしまった。
昔読んだ本だとelement=要素、attribute=属性だったけど 最近じゃカタカナ語なのかな? well-formed、validity とかはどうなんだろ?
content=内容 とするなら、 element=要素 attribute=属性 でいいと思うけど。
ふーむ、例えば、getElementByIDとかみたいな関数はアルファベット表記だから、 テクニカルタームはなるべくカタカナ語の方がいいかな、と。 contentはコンテント(コンテンツ)でもいいと思うけど、 コンテントを表示するって書くのはなんか抵抗がある。 コンテントについての説明がない、ってことは、 テクニカルタームじゃなくて、日常的な意味なのかな、とも思ったりして。 もちろんすぱっと割りきれる問題じゃないとは思うが。 例えば、documentを文書と訳すと致命的に意味不明になる。 As in HTML, document is an object that represents the XUL document itself-the content as opposed to the window that surrounds it. ここのcontentは明らかにテクニカルタームじゃないでしょ? contentをコンテントと訳してしまうと、なぜ、ウィンドウオブジェクトの surround itが対になっているかが不明瞭になってしまう。
自分はエレメントだったり要素だったりしてる。 あとで統一的な書き方がきまったら直します。 ところでこのドキュメント、function っていってる けど、メソッドの方が正しいんかな?
このExampleはドキュメントに対するセカンドレベルノードの配列を 作る。そして、このExampleはツリー全体にまで応用できる。 ドキュメントの構造的な表現がこのようになっているので、Exampleのように あるノードを使って他ノードを取得する手法を使えば、ドキュメントのどの部分にも 、スクリプトで素早くアクセスしたり変更を加えたりできる。
ドキュメントオブジェクトは現在作業している特定のスコープでのみグローバルであるので、 ウィンドウ(window),ダイアログ(dialog),ページ(page)、はそれぞれ、 独自にドキュメントオブジェクトを持つ事になる。 使い方はアクセスしたいプロパティの前に"document."という部分をくっつけるだけでよい。 var title = document.getElementById("bookTitle"); 今使っているスコープの外からアクセスする事も可能である。 例えば、window.openerをつかって他のウィンドウを開いた場合、次のようにする。 var title = window.opener.document.getElementById("bookTitle");
ch02訳してるけど薀蓄が多いなぁ。 受験英語しか知らん俺には辛い。
すまないけれど質問させてくれ。 XULってのは、Mozillaだけにしか使えない物なのか? IEでも使えるのか? で、インターフェイスを作ってそこから何が出来るのか? 面白そうな技術なら俺も調べてみたいのだが
スクリプト言語を扱えて、XBLが使えて、XML文書インスタンスに直接CSSを適用できるなら、Mozilla以外でもXULは利用できると思います。 ただ、現在それができてXULパーサとして使えるのはGeckoくらいのものでしょうね。
>>375 詳しく有難う。XBLっていうのが何かわからないけれど、
IEにそれを対応させられればIE上でも動くかもしれない、と。
#XMLにCSSってのもよくわからないですが、XSLTの書き間違いでしょうか?
調べてみます。
自己レス。CSSからダイレクトにXMLを参照するんですね。 結構違和感あるけど、興味がすごい湧きました。 ちょっとずつ調べてみます。 とりあえずは、XULを使うと、どのような状況で何が出来るのかを知りたいです(w
XULをIEで使うのは無理。 XULってのはインターフェイス言語。 ただ、XUL自体はXMLが元になっている。 例えば、<html:input type="button" value="MyLabel" onclick=";"/> みたいなものを <xul:button label="Mylabel" oncommand=";"/> のように使いやすく再定義してある。 その定義ファイルがXBL。 conditionやactionが羅列してある。
>>378 レスサンクスです。ということは、
HTMLを使ってインターフェイスを作成するのが最終目標で、
それをXULで定義する。XBLが定義言語(xml-html binding)
という認識でよろしいでしょうか?
今までJavaScriptなどで出来ていた事が、簡潔に書けるようになるということですね
XBLは、XMLでDOM要素ノードとしての振る舞い(メソッドやプロパティ)を定義する仕組みです。
例:
http://lxr.mozilla.org/mozilla/source/toolkit/content/widgets/tabbrowser.xml パーサに変更を加えずに要素の振る舞いを定義できるからか、MozillaではXUL要素の振る舞いのほとんどはこうして定義されています。
IEの場合は"binding"で同じようなことができるかもしれませんが、僕はよく知りません。
XULはプラットフォームごとに異なる解釈をされます。
例えばMacOSであれば、menubar要素はGeckoではなくMacOSの機能でレンダリングされていると思います。
ということは、MacIEではMacIEのエンジンがXULに対応しないとどうにもなりません。
Windowsなら一つのウィンドウの中に全部の要素が収まるはずなので、CSSの問題とバインディングのことさえ解決できれば、WinIEでもXULを使えるかもしれません。
……ということを
>>375 で言いたかった、と。
ちなみに、XMLに直接CSSを適用させるという使い方は、XHTML2.0やSVGなどではごく当たり前にされています。
訂正。 IEの場合は"binding"で → IEの場合は"behavior"で
XULの目的は、今までHTMLで提供されていたような貧弱なフォームコントロールに止まらないもっとリッチなインターフェースをXMLで記述することです。
また、XUL自体はプラットフォーム非依存なので、Web上のサービスなどのクロスプラットフォームなインターフェースを記述するにはうってつけです。
「HTMLを使ってインターフェイスを作成する」というより、
「HTMLのようにクロスプラットフォームな技術でインターフェースを作成する」と考えて下さい。
XULの仕様(明確なものはまだありませんが……)に乗っ取った動作ができるなら、必ずしもXBLで要素の振る舞いを定義している必要はないでしょう。
http://slashdot.jp/article.pl?sid=02/12/05/0810253 XULの用途についてはこの辺の記事でも色々述べられています。
乗っ取った→則った 誤字が多いなあ。
なぜsage進行なのか疑問を感じながらresです。
>375氏
>>380 解りやすいサンプル有難うございます。
Mozillaの基礎的な理解(NGLayoutとか)が必要みたいですね
NGLayoutを調べるに従ってちょっとずつわかってきた感じです。
上記のサンプルは、NGLayoutをタブブラウザ化するためのxulですよね?
>>382 例えば、amazon.comとかのソースを書くほどの根性もなく、
htmlの限界にげんなりしている人が、もっと手軽にインターフェイスを実装するための
言語ということでしょうか?
IEのBehaviorとかを使うのはクロスプラットフォームの観点から外れている、と言うことかな?
XULはamazone.comというよりむしろ、javaappletのようなものを 思い浮かべた方が当たっていると思います。IEだと、activeXですね。
オススメサイト/本はありますか? 腰を落ち着けて正月にでも学んでみようかと…
XUL全然しらないけど、シェアno1のIEで対応出来ない以上、 玄人のおもちゃになって意義無く終わってしまう…と思うのは間違い?
次世代Windows「Longhorn」の真実
http://pcweb.mycom.co.jp/news/2002/12/09/08.html ・その3 ユーザーインタフェースの刷新
Longhornでは、デスクトップを含むユーザーインタフェースがXMLベースとなる。
なかでも、従来のスタートメニューは、コードネームで「Sidebar」と呼ばれるコンポーネントに置き換わる。
スタートメニューの機能以外に、デスクトップマネージャー、検索機能、スライドショーなど、
XMLベースのモジュールを組み込んで自由にカスタマイズできるようになる。
パクられたw
>>392 それを言うならXULの概念はアクティブ・デスクトップのパクリでは?
>>391 終わるって?Mozilla(Gecko?)がなくなるってこと?
XULを使ったソリューションって何かあります?
Windowsに特化したXUL要素ってなんかありますかね? XPCOM+XPConnect+JavaScriptの代わりに使うスクリプト言語の方が 独自拡張されるということなら、自分にもわかりますけど。
要するに、APIを直接呼ぶようなのを入れて来るんじゃないかな? あと、<xul:marquee>とか。プロパティでmarquee="true"とか。 getMarqueesByTagName(string ELEMENTID):function とか。 しかし、xmlは独自拡張の為にある言語、といっても過言ではないので、 好きにすればいい様な気もする。 JavaScriptより、DOMメソッドをいじられる方が怖い。 IEのDOMはダメダメだし。
一番最初に独自拡張を始めたのはネスケだったりするわけだが・・・ しかしIEにせよMozzilaにせよ、あれば便利な機能が標準化されておらず、 それをこっそり付加してしまうと、HTMLの様な独自拡張と標準仕様のいたちごっこが はじまってしまうわけだが・・・
> xmlは独自拡張の為にある言語 何かちょっと違う様な…。 言語を一から自由に作るのは良いけど、 XULの様に既に作られた言語をあちこちで勝手に拡張したんでは 互換性が無くなってしまう訳で、マナー的には良くないと思う。 拡張部分を名前空間で本来のXULと分けるならともかく。 個人的にはDTDなり何なりが早く作られることを祈る…。
XULの拡張なんて誰もしないと思うよ。
なんかMozillaユーザーって嫌いな奴が多いんだよな。 IEが独自拡張したら凄い文句を言うくせに(それ自体は間違っていないのだが) 自分たちの(独自拡張を含む)機能がIEで実装されたらパクリだというのは ただのマイナーユーザーのひがみ以外に説明しようがないと思われ。 このスレをみたらここの住民は比較的まともそうでいいけどさ…
おいおい、ここにMozillaユーザーに対する感想を書くなって。 比較的まともなのは、お前みたいなスレ違いが来ないからだよ。
既存のHTMLなり何なりを、素人には本来の仕様と区別付かない様な形で 拡張して、混乱させているから叩かれる。 一から新しいものを作れば文句は言われないだろうに。 むしろそれを余所がパクれば良い攻撃材料になる訳で。
>>404 そういう擁護が鬱陶しいわけで。
このスレはそういう話をするところじゃないでしょ?釣られるなよ。
#ちなみにMozillaの<font>タグはそれじゃ説明がつかないのだがな
>>405 XULにfontなんてあったっけ?
HTMLの話なら、後方互換のためでは。HTML3.2ではちゃんと認められてるのだし。
>>405 #付きとはいえ、お前も要らん事書くなや。
以下スレの本題に戻って下さい。お願いします。
>>402 既に決まったものがあるHTMLの独自拡張と
特定のアプリケーション群のためにあるXULの区別のつかないヤシ。
>>407 も言ってるんだけど、わざわざ煽らなくていいじゃん。
ところで、xulレベルから他のウィンドウのDOMにアクセスして、
HTMLドキュメントにcreateElementで<br>を追加しても、改行されないんだけど。
テキストノードの追加は反映されるのに、tagの解釈はされないのか?
って、やっと分かったけど、 createElementしたら、HTMLElementじゃなくて、XULElementになっちゃうんね。
>>410 そうなのれす。
そういうばあいはcreateElementNSをつかってださい。
>>411 レスさんくす。
つーわけで、2chブラウザ(非monazilla)を作ってみたんだが、
お世辞にも快適な使い心地とは言えんなぁ。
moz2ch
moz2chって動くの?
>>414 重すぎ、書き込みできない、けど動くだけは動く。
ふーむ、じゃあ、漏れが作ったのとあんまり変わらんなぁ。 ちょっとソース見てみよっかな。
417 :
デフォルトの名無しさん :03/01/01 13:54
クスールって読んでる人いる?
ををを、このスレついにageられたか!(w 随分長い間sage進行だったのに
419 :
デフォルトの名無しさん :03/01/01 14:01
linux だと root にならないとインストールできないのが 面倒くさいYO。みんな平気?
書きこんだ後、祖母とおせちを食べててひらめいた んだけど mozilla ホームデレクトリに入れればいいじゃん!! 賢いじゃん>>俺!! カコイイ>>俺!! /path/mozilla はシェルスクリプト だからインスコも楽勝だった。ウヒョー、今年はいい年になるネ
結局厨房がageていた訳だが
冬だからねえ…
trercellは特にクラスとか指定してなくても、 "src"ってattributeがあるような気がするんですけど、 xulplanetにはそれらしい記述がありませんな。
ぎゃあ、treecellです。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>73 重くなるのはなぁ。。。
どのくらいになるのかわからんけど。
1年半
ひろゆき粕汁食うか?
これからは、爆弾をしかけたとか書いちゃ駄目なのですか?(´・з・`)
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
2ちゃんねるも閉鎖へと突き進んでますな・・
>>429 はマジレスなのか、コピペなのか判断に迷う所だな。
このまま全サーバに導入してしまってもかまわないと個人的には思います。 発言に自己責任が伴うので、くだらない殺人予告や過度の誹謗中傷、ウイルス・ブラクラリンク などは少なくなるのではないでしょうか。
被害妄想が激しい459の居るスレはここですか?
判決文には大きく分けて、3つの日付が出てきますね…。 おもいっきり削って、抜粋してみました。 --- 第3 当裁判所の判断 2 (2) ウ 原告Aは,被告(ひろゆき)に対し,平成13年6月21日付けの通知書(内容証明?) をもって発言の削除を求め,同通知書は,同月22日,被告に到達したから,これにより, 被告は,本件各名誉毀損発言(限定あり)について,本件掲示板に書き込まれたことを 具体的に知ったものと認められる。 エ しかるに,被告は,前記のとおり,本件口頭弁論終結時である平成14年4月17日に おいても,本件各名誉毀損発言を削除するなどの措置を講じていないのであるから, 被告には作為義務違反が認められ,原告らに対する不法行為が成立する。 6 結論 以上によれば,原告らの請求は,各200万円及びこれに対する訴状送達の日の翌日で あることが記録上明らかな平成13年8月5日から支払済みまで民法所定の年5分の割合 による遅延損害金の支払並びに本件各名誉毀損発言の削除を求める限度で理由があるから 認容し,主文のとおり判決する。
あれ、書き込みなくなっちゃった?(^_^;)
CXキタ━━━━(゜∀゜)━━━━!!
>>371 いつぞやもP2P/"疑似P2P"型での削除システムを検討しましたが、
整合性確保は技術的に可能でした。
ただ当時、専用ソフトウェアによる閲覧管理が邪道扱いだったことが、
実装に向かなかった原因の一つだったと理解しています。
たった1年そこらで「2ちゃんブラウザ」がこんなになるなんてねぇ(w
他の問題点ですが、ハードウェア能力(最も直接的にはHDD)と通信インフラが
ネックでしたが、今もなお大型掲示板を許容するには至っていないと思います。
2ちゃんねるってなに?ってのはまぁ分からないではないが、 アクセスログってなに?って項目があるのはちょっと違わないか・・・?
今取得のテストしてるっていうのは批判要望板だけだべ? あと、元々レスに対して取得してるつー板は ここと、ダウソと・・・あとどこかな? setting.txt見て調べれ
何を言いたいのかさっぱりさっぱりわかりませんが・・・・
キニシナイ
えっ、人数淘汰のためのIP取得宣言なの!?
CXキタ━━━━(゜∀゜)━━━━!!
この板、荒れなくなったね
言論の自由≠暴言の自由
ますます、ファンタスティックでスリリングでドラマティックなスレッドですわね、
>>前スレの989 >> 無知はいいねぇ ほ〜、じゃあ、IPだけで個人特定する方法言ってみ。 ほれ言ってみ
さん ですわね。
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
454 :
デフォルトの名無しさん :03/01/11 10:07
Mozillaのブックマークを編集しやすいようにIEみたいに フォルダとショートカットの形で可視化していじれるように する、みたいなXULアプリって出来ないですか。 もし可能ならショートカットアイコンをDD出来るようになってたら IEからの移行がすごいらくかも。
2
なんで腐れ男はキャップ持ってるんだ?
ポリタンクは
少し同意。 前スレは、全体的にはストップする必要はない良スレだった。
ひろゆき、変な鼻。
>>461 XULアプリでって書いてあるということはそういうことでしょうね。
いやそんな今時な煽りやられてもな ただ俺は「誰もお前には聞いてねーから大人しくROMってろや低脳」って言いたいんだよw 理解出来た??
>>454 の言ってることがイマイチよく分からんなぁ。
Phoenixのサイドバーみたいなのだろうか。
あれは重すぎて使い物にならんか。
それとも、ドラッグ&ドロップをもっとぐりぐり使うような、
管理ツールってことかな?
800⊂(゚∀゚ )
メロンパンナって孫悟空なのか?
見せしめとしてでも捕まえないとこの類いの挑戦厨スレが乱立しそうだな
薬・違法なんてどうすんの?IPとってて放置してれば 犯罪幇助なんてのにならんのか。
不法行為であるのは前提なのね。
game鯖の規制がすどい
(^^)
俺らも人のこと言えないが年末年始に2ちゃんねるって恥ずかしくない?>アンチの皆さん
(^^)
(^^)
ポリタンクは
xulもいいんだけどさ、とりあえず、MIDIプラグインforWindows作ってみない? とりあえず、最初はMCIのやつを。 それでうまく行ったら、どっかのMIDIライブラリなりを拾ってきて移植するってことで。
(・_・)/
Mozillaのプラグインドラフトではネスケと完全後方互換とか言っときながら、 ほとんどのプラグインがハングするんだが。
したことないしスレ違い。
レス見て需要ありそうなので 任意ブラウザで開くボタン作ろうとした。
>>481 それ欲しい。
コンテキストメニュー拡張入れるとめちゃ重くなるし。
>>482 ごめん。酔ってて途中で送ったらしい。
挫折したんだわ。
>>483 右下の鍵の横にボタン置いて、押すと予め設定したアプリにURLわたす、と。
WEB書きにとって便利だなと思ったんだけど。
var IEpath = "C:\\Program Files\\Internet Explorer\\Iexplore.exe"; var file = Components.classes['@mozilla.org/file/local;1'].getService(Components.interfaces.nsILocalFile); var process = Components.classes['@mozilla.org/process/util;1'].getService(Components.interfaces.nsIProcess); file.initWithPath(IEpath);process.init(file); var arr=new Array(); arr[0]=window._content.location.href; var out = {}; process.run(false,arr,arr.length,out); 昔、2chのスレに書いてあったやつ。
>>484 prefsbarで既に実現してる。
IEにURL渡すボタン付けてるし。
>>485 のコピペだけど。
あまりお行儀よくないから、prefsbarも入れたくないなあ。
酔い醒まして頑張って
>>481
むしろ、人柱を自分のページで募ってほしいのだが。
右下の鍵の横にボタンがついてると行儀がいいのか? んー、だったら一考の余地はあるな。 とりあえず、ボタンメーカーとか作るのがいい気がする。
5つ6つ機能使うならバーも良いけど、 一機能のためにバー使うのも確かになんだな。F8押すのも面倒だし。 キーボードショートカット定義できれば良いのにな。 prefsbar使ってるけどさ。
>>491 キーボードショートカットを定義するアドオンを作ればいいんでわ?
moz2chのコメントにもあったけど、 neckoで差分読みこみって出来るの? xulplanetではネットワーク関係の資料をどこにおいてるのか分からんし。
HTTP ヘッダの If-Modified-Since で更新されたか調べて range で差分GETしてるぽい。
>>495 面白いな。
まだ開発途中みたいだけど。
どっかにも書いてあったが、moz2chのナイトリー更新されてるね。 この機会にjslibをやめて欲しいんだが。
sage
502 :
Loptr :03/03/07 17:22
XULがJavaよりも優れている点を200字以内で述べよ。
>>502 基本がXMLとJavaScriptなので、Webページに組み込みやすい。DHTMLを使用したWebページ製作の経験があれば容易に習得できる。
……これ以上は思いつかないなあ
MLだから、他のを流用できる、ってのも。
505 :
デフォルトの名無しさん :03/03/26 00:38
>>503 ・Mozillaのコンポーネント(Gekkoとか)が利用できる
もいれといてくれ。
>>506 Gekkoは任天堂のゲーム機ですがな
NGLayoutはGeckoです
508 :
デフォルトの名無しさん :03/04/05 20:25
XULからeditor使う方法とかまとまってるところないのかな? 幾つか見つけたけど、1.3だとうまく動かなかった...。
xulのeditorは禿しく欠陥品だ。 どうしてもってんなら、古いサイトにあるexampleを使えばいいが、 カーソルが枠の外にはみ出して強制終了するってバグが未だにある。
510 :
デフォルトの名無しさん :03/04/07 01:18
うーん、そうなのか。 composerとかも真面目に使ってないんだけど、 かなり駄目駄目っていうことなのか。
>>512 バックスペースで本来書けるはずのないところまで戻れる。
まず、ボタンがついてるほうのexampleを選択する。
めんどければ、composerでも可。
んで、Bボタン(ボールド)を押す。
"a"を四回連打。"aaaa"と表示される。
バックスペースを5回以上連打。カーソルがメニューにめり込む。
あ、ちょっと上手く再現しなかった。 100%再現させるには、 aa<b>aa</b>になるように打って、 バックスペースを5回押せばいい。 要するに、字数の数え方とか、Undo、Redoがめちゃくちゃなのよ。
516 :
デフォルトの名無しさん :03/04/15 03:16
Windows2000/Mozillaなんですが OLEビューワーで見ると mozilla plamSyncってのが登録されて 呼び出すといきなりモジラが起動されるんですが、、 これはどういうものなのでしょうか? ググッても見つかりませんでした
>>516 ぐぐっても出ないのは綴りを間違えてるからです。
>>516 PDA の Palm と mozilla のアドレス帳を同期させるもの、らしい。
>>515 そのバグって、メールでもばっちり再現できそうだが…
(^^)
>>519 ところがそうでもないんだな。
メーラじゃこのバグは再現できない。
要するにeditorのwidgetの開発は止まって久しいってことだと思う。
よく知らんが。
じゃ、普段から、htmlmailを使えばいいんじゃないの?
∧_∧ ( ^^ )< ぬるぽ(^^)
525 :
デフォルトの名無しさん :03/04/23 22:50
ほっしゅ
ところで、プロファイルに保存するタイプのアドオンのinstall.js はどうやって書けばいいんだ? 保存フォルダを得るのはいいとして、今まで通り登録したら、 chrome\install.rdfとかに書きこまれそうなんだが。
どうもです。 # replace getFolder("Chrome"); with getFolder("Profile", "chrome"); # replace registerChrome(.. | DELAYED_CHROME, .. with registerChrome(.. | PROFILE_CHROME, .. ってことですね。
All-in-One Gestures Irvine TabBrowserExtension ContextmenuExtension はうちでは動いてるよ。
どうも。 インスコしたやつがたまたま外れだっただけか…
プロファイルにインストールしたら、overlayが動いてない?
ども、ヘタレな超ぉ〜Anneでございます。と言っても覚えてる人
いなさそうだからコテハンやめた方がいいっすかね・・・
で、今流行り(?)のFirebirdに僕自身乗り換えたので、proxybar
もFirebird対応にしてみました。なんかビミョーですけど、とりあえず
機能してるからまぁ良しとしよう、みたいなモンなのであまり期待しな
いで頂きたいのですが、とりあえず
ttp://toshiki.s22.xrea.com/xul に置いておきます。よろしかったらお使い下さいませ。
なにしろ、
>>530 のリンク先をちょちょいと読んだだけなので、甚だ不完全覚
悟でお願い致します。一応僕の環境では機能してるんですが。
で、バグ報告はして頂けるのであればメールでも、ここでもいいんですが、ここは
一応の場なんで出来ればメールでお願い致したく。ではでは。
すっすまんっす。index.html うぷするの忘れてたっす。 間違えて昔のxpiインストールしちゃった人申し分け無いのっす。 FireBird対応バージョンにリンク張った index.html うぷしたん でそこからインストールして下さい。 誠に申し分けありませんでした m(_ _)m
>>535 しばらくです
そゆことだったのね。。。
ソース見て、何が変わったのかチョトなやんじゃったw
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
538 :
デフォルトの名無しさん :03/05/31 10:05
Mozilla 1.4b Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.4b) Gecko/20030517 for VineLinux 0vl5 ツールバークリックしてもメニューから選んでも何も反応せんっす。 っていうか、板ツリー更新ってどうやるんすか?全然分からない(・ω・`
541 :
デフォルトの名無しさん :03/06/07 17:57
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 普通にレスしただけなのに、 「ageんなバカ!」と罵られ傷ついたことはありませんか? ┃
┃ ┃
┃ 何も言われてないのに「ageちゃったスマソ」と謝ってる変な人いませんか? ┃
┃ ┃
┃ みんなにレスを見てもらいたいのに 「sage進行で」と強制するスレありませんか? ┃
┃ ┃
┃ ┃
┃ ここはそれらのことに疑問を持ち、改善したい人たちが集まるスレです ┃
┃ ↓ ┃
┃
http://qb.2ch.net/test/read.cgi/accuse/1054373827/l50 ┃
┃ ┃
┃ ┃
┃ みんなでsage厨をどうやって駆逐するか議論しませんか? ┃
┃ ヘイ!щ(゚Д゚щ) カモーン┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
543 :
デフォルトの名無しさん :03/06/07 18:29
544 :
デフォルトの名無しさん :03/06/08 05:20
>>541 三行目のみ同意。勝手にルール作ってんじゃねぇよ個人自治厨。
2chでは集団自治なんて滅多に見ないけどな。 多くて2〜3人ってとこだろう。
<RDF:Seq about="urn:mozilla:hoge"> </RDF:Seq> みたいな空のRDFコンテナをInit()で読みこむと、 GetCount()もAppendElement()も出来なくなる (nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)) のはなぜ?
あー、同じ話だ。 結局、IsEmpty()がtrueなら、データソースからリソースごと消して、 もう一度コンテナを作るとうまく行くけど、むかつく。
特定のエレメントの中身を違うエレメントで置き換えたり出来ないのかな? 例えば、<embed>→<irfame>とか。
>>549 考える事は同じか…
embedに限るなら出来なくはないと思う。
embedは確保された領域にネイティブなウィンドウを表示する。
で、ネイティブなウィンドウにdomウィンドウをレンダリングするのが、
Gecko Embeddingだから……
ようするに、mozillaのプラグインにgeckoをembedすればいい。
551 :
デフォルトの名無しさん :03/07/08 17:48
サルベージ
ぎじかちゅってどうよ?
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
XUL Planetのxpcomリファレンスが新しくなってかなり見やすくなったけど、 若干使いにくくもなったように思う。
>556 ブックマークのメニューから右クリでチェックすると、 以後(下位?)メニューが開かなくなる あれこれいじめてたらVC++のランタイムエラーで落ちた がんがれ
>>557 それはこっちのバグじゃないと思うけど、どうよ?
クリーンインストールしても、ブックマークのコンテキストメニューを操作すると、
再現しない?
(^^)
それですね…お手数かけてしまってすまそ 漏れブックマークツールバー使ってないよ(つД`)
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
XULの話題じゃないんだけど、MozillaでJavascript、 ってのもここで質問してもいいですか? bookmarkletを作って、javascriptをbookmarkに入れられた、成功、 とかやってたんですよ。 で、この勢いでprefbarのbuttonにしようと思ったんだけど、 どうもうまくいかない。 ふと思いついて、document.って書いてた部分を getBrowser().contentDocument.に変更したら動いた。 でもこうすると今度はbookmarkでは動かない。 これって何故ですか? もしかして俺、かなり重要な部分を理解していないですか?
getBrowser() ってのは、DOM風に書けば、 window.top.document.getElementById("content")になるわけよ。 で、contentってIDを持ってる要素がbrowser.xulに定義されてて、 それが<bowser/>だったり、<tabbrowser/>だったりする。 contentレベルからアクセスできる最上位documentは、chromeレベルから見ると document.getElementbyId("content").contentDocumentに相当する。 ウェブ上のjavascriptから、chromeを操作されちゃうと気分悪いでしょ?
>>564 なるほど。
ブックマークとは違うってことなんですね。
見かけ上は似たようなもんなのにな…。
もう一点いいですか?
prefbarのボタンを押すと望みの動作をするようになったのはいいんですが、
これ、ボタン押さないでも勝手に全ページに適用する方法ってないですかね?
厳格なHTMLが好きな人には怒られそうですが、
hr color=がIEのように反映されるようにスタイルを設定するJavaScriptを作りました。
他にも、img altの内容をtitleにも設定する、とかって
全ページに勝手に適用できたら嬉しい人もいそうな気がするんですが、
そんなことはできないんでしょうか?
XULって何ですか?解説ページor本などの情報があれば教えてください
>>565 一点目はわからんが
二点目のは piro さんの Popup ALT Attributes
ってのが近いと思うんだけど。
>>567 おお。ほんとだ。
bookmarkletとしてだったら自分にも書けるんですが、
なかなかすごい量ですね。
xpiとして動かす部分が大半なのかなあ?
それにしてもXULアプリ作るのって大変そうだ…。
user.jsにこう書けば全ページで自動実行するJavaScriptを定義できるよ、
みたいなのがあるかと期待してたんですが、
そんなものはないからXULアプリ作ってるんですよね、きっと。
>>566 日本語なら、このスレとか。英語なら
>>6 とか。
xpiのiはインストールのiだよ。 Cross Platform Installation. スタイル関連のことなら、userContent.cssをいじるだけで、 大概のことは出来ると思う。 userContent.cssからバインディングすれば、インストールなしで、 スクリプトを動かせるはずだが、試した事は無い。
>>568 コンテキストメニュー拡張のカスタムスクリプト機能で何とかなりませんか?
ページごとの自動実行も一応可能ですので。
jsActions の中身をみてみたが コンテキストメニュー拡張もなかなか楽しそうだ。
で、何?XULって
574 :
デフォルトの名無しさん :03/09/05 22:46
hosh
で、XULって何?XMLの親戚?
576 :
デフォルトの名無しさん :03/09/08 00:02
mozillaでしか動かないプログラムを作る必然性がわからない…
わからないが、とりあえず読んでみることにする。
>>576 サンクス
読んでみた。間違っていたら訂正してくれるとうれしい。 XULというのは、XMLによって記述するGUIフレームである。 XULで記述するのはあくまで配置等の大まかなフレームだけであり、 細かいGUIの設定はCSSを使う。 また何かイベントが起きた場合の動作はJavaScriptによって記述する。 一般に、こうしたXULとCSSとJavaScriptすべてをひっくるめてXULと呼ぶようだ。 長所は ・GUIのクロスプラットフォームであり、Mozillaさえあればどこでも同じように動く。 短所は ・最大シェアを持つIEで動かすことが出来ない→結局ユーザがいない ・プログラムをJavaScriptで書かねばならない→厳しいセキュリティ制限がつく といったところである。
>プログラムをJavaScriptで書かねばならない→厳しいセキュリティ制限がつく これは間違い。xpconnectと呼ばれる方法で、C++で書いたバイナリを javascriptから直接呼ぶことができる。 HD全消去とかは、5行くらいのスクリプトで可能。 スパイウェアなら30行くらいかなぁ。 Mozilla系列はメーラーやエディターもXulで動いてるわけだから、 単純な比較はできんよ。 つっても、メーラーは全く普及してないが。
>>580 知らなかった。ありがとう。
でも大まかなアウトラインはあってるんだね?
> これは間違い。xpconnectと呼ばれる方法で、C++で書いたバイナリを
> javascriptから直接呼ぶことができる。
> HD全消去とかは、5行くらいのスクリプトで可能。
> スパイウェアなら30行くらいかなぁ。
でもそうするとセキュリティが心配だけど大丈夫なのかな?
インストールがやたら面倒とか?
JavaScriptしか使わないのであれば安心だけどな。
面倒つーか、必ずユーザーがOKを押すインストールが必要。
悪意のあるプログラムは危険って但し書きがでて、
そこさえくぐれば何でもし放題。
そこをくぐらなければ、例えローカルファイルでも、
web上のスクリプトと同じ権限しかない。
>>565 でブックマークレットがって嘆いてるのはそのせい。
ブックマークはローカルファイルだけど、
インストールされてないので、出来る事が限られてるから、
XPI(インストール)を使って本格的なのをやろうか、という話。
XPCOMというのもクロスプラットフォームだよね。
XPCOMは呼出規約がクロスプラットフォームでありさえすればいいので、 実装はクロスプラットフォームでなくてもいいんだけどね。 実際にクロスプラットフォームなバイナリは idlをコンパイルした部分だけだが、それで十分役にたってる。
じゃ、たとえばLinuxだけでしか実装されていないXPCOMを使ってしまったら ほかのプラットフォームでは動かないということですか? 逆にいうと、XPCOMを作るときクロスプラットフォームを意識するならば、 Mozillaが出ているすべてのプラットフォームで実装する必要があるんですか?
ま、そういうことやね。 でも、普通にC++でコーディングすれば、 プラットフォームの違いを意識する必要はない。 COMのいいところは他のCOMをブラックボックスとして使えるところだから、 プラットフォームの違いがクリティカルになりそうな奴、 (waveoutとか、DCとかファイルアクセスとか型のビット数の違いとか) は、すでに誰かがやってくれてあるので、 いまさらOSに依存する部分を新たに作る方がしんどいと思う。 例えば、xpcomには3Dを扱うオブジェクトがないので、 direct3Dをそのままwrapしたようなコンポーネントを作れば、 確かに、windowsでしか動かないだろう。 でも、OpenGL+glutとかでcomponentを作れば、 他のプラットフォームは何も考えなくても、 ビルドツールが勝手にコンパイルしてくれるはず。
>>588 色々詳しく説明してくれてありがとう。
ふーむ。感覚がいまいちつかめないので、
こういうときは実際に作ってみるに限るな。
とりあえずmozillaをインストールせねば。
590 :
デフォルトの名無しさん :03/09/19 16:58
591 :
デフォルトの名無しさん :03/09/20 02:32
去年立ったスレだったYO!!
593 :
デフォルトの名無しさん :03/09/21 01:28
ageちゃった。 申し訳ない。
>593 む!頂きまつ
>>595 なんだかまっさらなプロファイルにインスコすると落ちちゃうみたい。。。
というわけで最新版落としてくださいです。。。
すみません。
age
>>598 そこはソースじゃなくてDoxygen後のドキュメントみたいだけど?
string行ったらsun-javaに飛ばされた(苦笑 これいつからあったんだろ?全然知らなかった。飛ばされないし。 まあソース見りゃ済むからいらんのだけどなあ。
>>601 うぉっ!ほんまや。そういうことやったんか。ありがとう。
俺毎日見てるけど気付かなかった。
>>604 (*゚∀゚)=3
Toolbar Enhancementsで縦置きツールバー使ってるんで、
縦に並べられるようにできませんか?
>>605 userChrome.cssで、
toolbar > toolbaritem.toolbaritem-custombutton-container{
-moz-box-orient: vertical;
}
を設定すればいいはずです。
効かなければ、!importantを付けてみてください。
toolbar >の部分はもっと絞り込めると思いますけどね。
なんてたって、縦置きなんだし…。
>>606 できました。
externalappの方も同じ方法でできるんですね。ありがとうございます。
どっちでも使えるように書くとこうですね。 toolbox[vertical="true"] > toolbar > .toolbaritem-custombutton-container{ -moz-box-orient: vertical; }
xulで分割ダウンロードって出来るんですか? 拡張を探しても無かったので・・・。
>>610 できます。
nsIHTTPChannelを複数(デフォじゃ3個以上は無意味だが)
作ってそれぞれに別のrangeを割り振ればいいんです。
http以外ではどうなるのかよく分からんが…
新しいfirebirdのインストーラーが試験的に公開されてますが、 これを受けて、拡張をプログラムファイルの方にインストールするのは 廃止する方針のようですね。
質問ですが、templateでツリーなどを作るとき datasources="rdf:files" ref="file:///c:" とすると、日本語は文字化けすると思いますが 文字化けを解消させるにはどうしたいいのでしょうか? 環境は、Win me,Firebird 0.7en
うーん、文字化けしないけどなぁ。 たとえば、アドレスバーに、"file:///c:"って打つと、 chrome://communicator/content/directory/directory.xulは まさに、そのdatasourceをそのrefでみてテンプレから作ってるわけで… この時点で既に文字化けしてるんだったら、ばぐじら行きかもね。
あああああ
>>616 はガセネタのような気がしてきた。。。
まあ漏れらしいけど。。。
私のはwin98だけど、少なくとも、file:///c:に文字化けは無いね。 それに、わざわざ文字列を拾ってコンバーターにかけると、 rdfのありがたみが一挙に薄れるような。
アドレスバーにfile:///c:だと文字化けしないんですが。 文字化けの感じがUTF-8文字をShift_jisで変換しているようだったから 開いているxulドキュメントの先頭にencoding="utf-8"にしたらいいと思ってたんですが RDFから読み込んだ部分にはまったく反映されないみたいですね。 勉強してきます。
ぼけてました。 var serverSocket=Components.classes["@mozilla.org/network/server-socket;1"] .createInstance(Components.interfaces.nsIServerSocket); serverSocket.init(80,true,5); ですね。逝ってきます…
スレ違いかもしれませんが投稿させてください。
最近公開されたRSSニュースリーダーに
ReadOne
http://www.readone.net/ というのがあります。現在はまだInternet Explorerのプラグイン版
しかないそうですが、サポートBBSの以下の書き込みを読んだ限り
ではmozilla版も脈ありのようです。
>なお、作りたいとは考えておりますのでmozillaサイドバー(XUL)の
>開発を手伝ってくださる方がいらっしゃれば比較的近いうちに作成
>できるかもしれません。
私はmozillaもRSSリーダーも単なるユーザーで知識皆無なので手伝いは
無理なんですが、どなたかが開発に参加されてmozillaでRSSリーダーが
一つ増えればいいなあと思います。
ふんませんが質問させてください 最近,XULをいじりたくなって,イロイロと調べてるのですが, XULのDTDってどこにあるのでしょう...? もしかして,DTDなんてものはなくて, XML-Schema とか,他の手段で定義されてんでしょうか???
>>623 CSS と XBL の組み合わせでどんどん要素名・属性の追加拡張が可能だから
DTD 書いてもナンセンス、のような感じ。
基本的なものは XUL Tutorial でわかるけど、追加物はソースを見るしかない。
box や menu とかの基本セットについてはあってもいいと思うけど。
livehttpheaderって動いてます?
>628 どうだろ。0.7が最新みたいだけど、 あれからリクエストまわりでけっこう大きな変更あったからね。
latest-0.8、xpiインストール画面でUnsignedとか出るけど、 将来的にはmozilla.orgのほうで拡張の認証とかするのかな。
>631 Unsignedは古いインストーラーでも出てたけど… まあ、mozdevあたりかなぁ、やるとすれば。 databaseプロジェクトって今でも人気投票やろうってくらいだから。
634 :
デフォルトの名無しさん :03/12/23 15:03
XULに関する文書はだいたい古くて実際やってみても動かないってことが多いんだけど チュートリアルなんかで、使える例題載せてるところってないですか? やっぱ英語ですか?
日本語はないね。 やりたがってる人はいろいろ居るみたいだけど…
>636 >609
638 :
デフォルトの名無しさん :04/01/10 08:35
TransforMiixの機能を呼び出してXSL変換をして変換後のドキュメントを保存する XULアプリを作ったんだけど,需要はあるんだろうか?
>>639 む、ほしい。RSS を変換させたやつを保存したかったり。
ファイルを間違えてアップしてしまった.
あらら,間違ったほうのアクセス数のほうが多いってのは不味いな.
保守sage
html文書では、XMLHttpRequestのresponseXMLは 何も返さないと思いますが。 html文書をDOMとして得るにはどうすればいいですか?
>>649 var URI =HTMLファイルのURI;
var doc = document.implementation.createDocument('', '', null);
doc.load(URI);
doc.addEventListener('load', docLoaded, false);
function docLoaded {
ここからdocを使用する処理を記述
}
>>650 どうもありごとうございます。m(_ _)m
できました。
ふーむ、私のお勧めはnsIDOMParserです。
...
var str=httprequestobject.responseText;
var doc=(new DOMParser()).parseFromString(str,"text/html");
alert(doc.documentElement.localName);
うろ覚えだから関数名は間違ってるかもしれないけど…
詳しくはここ。
http://www.mozilla.org/xmlextras/
650みたいなレーシングは結構怖いな。 イベントリスナーは先に追加してほしい。
最近思うんだけど、MozillaってUTF-8じゃなくて、 UTF-16がデフォルト? それとも、スクリプトやRDFだけUTF-16なのか?
>>654 nsStringがUTF-16だからデフォルトはUTF-16なんじゃないの?
>656 お、この図はわかりやすいなぁ。 ありがとう。
about:****ですけど、 オリジナルのnsAboutRidirector.cppは、 httpプロトコルに飛ばすときにセキュリティのレベルを変えてますね。 chromeに行くなら心配はいらないんですが、 aboutのレベルでウェブ上のファイルを読ませると、 えぐいことができそうなので、気をつけてください。
>661 読んでみました。 ところで、そのドメインって何やってるんですかねぇ。 ドキュメント自体はIBM名義なので、 就業中に書いたのかもしれませんが、 Doron個人のサイト?
Doron が Netscape(AOL) にいたときから写真やらなんやら置いて weblog からリンクしてたから、個人的に自由に使えるサイトなんだろ。
---------- 再開 ----------
Emacsで動くGeckoのほうが欲しいな そうすりゃXULなんぞ必要ないだろ好きなだけ機能追加できる
いいだしっぺの法則
今日のmozillazineの記事によると、 毎月第一火曜日はXULの日、らしい。 あさって(あるいは水曜日の朝?)だな。
668 :
デフォルトの名無しさん :04/04/04 17:46
XULは糞! XAML最強!!!
>>667 talkbackを読めばわかるが、このスレで言うXULとは
あまり関係ない。
JavaScriptのOn/Offをカンタンに切り替えるような拡張はでてないのかな?
Slashzillaをホットキーで開けるようにしようとしているのですが その辺のソースについて詳しく載っているサイトはありませんか?
>>674 http://xulplanet.com/tutorials/xultu/keyshort.html このへんの Key Example でわかるんでないかな。
Overlay してる場合はソース見ないと分からんけど、たとえば
<keyset id="(overlay する id)">
<key id="hotkey_slashzilla" key="s" modifiers="accel,shift" oncommand="<開く関数>"/>
</keyset>
こんなんで ctrl+shift+s で開くようになるんじゃないかな。
うーん読んでみましたが基本骨子をまだ理解しきっていないので頓珍漢なことをしているような気がして不安
szoverlay.xulのソースが以下のようになっているんですが
<?xml version="1.0"?>
<overlay id="slashzillaOverlay"
xmlns="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul ">
<!-- 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にしても同様でした
slashzilla を nightly の mozilla に入れてみたけどパネル登録ができなくて、
テストできないんだけど、たぶん…
keyset は navigator.xul の keyset に overlay しなきゃ。
DOMInspector で id 調べると navKeys になってる。
また、broadcaster 使ってるから、
http://www.xulplanet.com/tutorials/xultu/broadob.html を参考にして、
<keyset id="navKeys">
<key id="hotkey_slashzilla" key="s" modifires"accel,shift" observes="viewSlashzillaSidebar"/>
</keyset>
これでどうかな。
modifires="accel,shift" のイコールが抜けてた、スマソ
すいません重要な事を書いておくのを忘れていました 使用ブラウザはFirefox0.8 4/3nightlyです
Firefox nightly で使えてるの? slashzilla.mozdev.org 見て使えないものとばかり思ってた。 それはともかく Firefox なら <keyset id="mainKeyset"> にしちくり。
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用に弄って使用しています
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>
月並みな表現で申し訳ないですがお付き合いありがとうございます おかげさまでできました #もっとxulやjsの勉強しなければ・・・
XulPlanetが、ちょっとリニューアル?されてるので上げ。
XULアプリコンテストってどうなったんでしょうか? ひょっとして、エントリーがなかったとか? コンテストを開くこと自体はたいへん良いと思うので、 告知を3ヶ月前くらいからやってほしいですね。 でも、パーティ関連にすると難しいのかもしれないなぁ。 じゃあ、お前が企画しろよ、って言われると、 参加者を集められる自信は全くないが…
エントリーはありましたよ。8つほど。
じゃ、そのうち結果発表とかあるんですかね。 去年はpiro氏のやつとmoz2chが出てたような記憶が。
投票数自体が少なかったけど、結果としてはXUL/Migemoが圧倒的大勝ですた。 RSS Reader Panelのflyson氏は出品されていませんでした。 だいたいそんなとこで。
XUL/Migemoでてたんですか。 このスレに時々来る通りすがりの人のブックマークのやつはどうでした?
>692 なるほど。 重ね重ね、ありがとう。
つーか、いきなりinstall.jsを捨ててきましたか… まあ、前に競べたら、納得の内容ですね。 icon関係もうまく処理されているようです。
上のリンクにも書いてありますが、install.jsはfirefoxから、 一方的に無視されるだけなので、 たとえば、mozillaにインストールしたときは、 install.jsの内容が反映されることになります。 従来のinstall.jsが内部で行っていた、いわゆるscript然とした 細やかな設定は、html側のInstallTrigerで行うべきだ、 というのが、Ben Goodgerの持論なので。 >コマンドラインオプション なぜ?
全ての拡張がUUIDで管理されるようになれば、 ひょっとして、複数の言語パックを同時にインストールできたりするように なるのかなぁ。
今日、Firefoxの新しいインストーラーを試してみました。 結構イイ感じで動いてます。
XULに全く関係ない話で恐縮ですが、
JLPのxsltスレは純粋な読み物としても、結構面白いです。
ttp://moz.skillup.jp/jlp/viewtopic.php?t=96 で、先程parseをgoogle英和で調べてみたら、構文解析と書いてあります。
もちろん、私にとって一番わかりやすい訳は「パース」なのですが、
まあ、構文解析でも意味が通らなくはないなぁ、と感心してみたり。
パースは「分析」だけでなく、「読み込む」事自体の意味が加味されている
のが通例なので、「解析」よりは「解釈」の方がしっくり来ます。
例えば、parseIntの10進数と16進数なんかは、解析方法が違うのではなくて、
解釈方法が違う、って言ったほうがより自然な日本語だと思いませんか?
ただ、parse errorは「解釈失敗」より「解析失敗」の方がきれいな言葉ですよね…。
辞書に載っている以上、凡例が少なからずあるはずだから、やはり侮れません。
それでも、「XMLとして解析できません」よりは、「XMLとして解釈できません」
の方がいいと思うのですが…。
その他で気になったのは、"call"の訳語です。
確かに、「呼び出す」より「呼ぶ」の方が日本語として熟れているとは思いますが、
明らかにテクニカルタームなので、ここは「呼び出す」の方に一票を投じたいです。
「〜を呼ぶ」という文ではどれだけこなれていても、
日本語としての不自然さはどうしようもないですから、
日常的な意味ではないことを強調した方が親切でしょう。
FireFox とか Thunderbird とか結構重いように感じるんだけど(非力なマシンなので)、 XUL で作ったアプリも、ある程度の重量感は覚悟する必要があるのでしょうか?
>703 モノに拠ります。 XPCOMをロードして使うようなタイプのアプリは速いです。 逆にfor文で100万回まわすようなスクリプトを書けば、 重くなります。 インタープリターなので当然ですね。
>>702 XULに関係ない話につっこんで悪いんだけど
parse = 構文解析
っていう翻訳はコンパイラの教科書なんかで昔っから使われているから
日本で計算機科学系の学科に居た人はみんなそう訳すんだと思う…
で,parseに「読み込む」っていう意味が加味されているっていうけど
コンパイラの教科書的には,
【字句解析】→【構文解析】→【意味解析】→【最適化】→【コード生成】
とフェーズを分けて教えるんで「読み込み」は 構文解析器(parser)の
仕事とは考えない傾向がある気がする…
>>704 XUL 分かってなかったです。すまそ。
C からも使える物と思ってた。
>>704 Cからも使えますよ。
Mozilla.orgにも、サンプルコードくらいはあったと思います。
ただ、コンパイルすると、当然プラットフォーム依存になります。
単純にUIがほしいのなら、それとトレードオフで得る速度は釣り合いません。
MFCやGTKのリソースファイルも、
UIの部分はテキストで箇条書き(?)にしてあるだけですよね。
アセンブリングの恩恵は、ほとんどないと思います。
処理が重いなら、スクリプトをC++に移植する、
という手がありますがね。
linuxでアンチエイリアスしないにはどうすればいいんですか?
linuxのアンチエイリアスってxulネタなんでしょうか?
>>704 タブブラウザ拡張も XPCOM/C++ で書き直すと速くなるんだろうなぁ...
>>710 全部書き直さなくても、パッチとしてマージするだけでもいくらか速くなると思う。
どうでもいいけど、「呉下の阿蒙に非ず」だけ浮いてるよね。
誤爆か?
基本的なことなんだけど、XULのGUIライブラリって GTKをラッピングしてるの?
>>717 まあ、100パーセントそうだとは言えないけど、
gtkが使える環境ならそう言って差し支えない程度には使ってるな。
719 :
デフォルトの名無しさん :04/06/19 02:37
xulから呼び出す外部のJavaScriptファイルに日本語を使いたいとき、 文字コードはどうすべきですか?UTF-8など色々試しましたがどれも化けます。 それともlocaleを使うべきなんでしょうか。
>>719 ファイル名はシステムの文字コードに依存するのでは?
WindowsならShift_JISかUTF-8でしょうか。
うまくいかないのはUConvでの文字コードの変換に失敗しているからではないかと予想。
721 :
デフォルトの名無しさん :04/06/19 03:22
ファイル名ではなく「ファイル中に」です。 つまり、alert("こんにちは");とかやると文字化けしてウィンドウが表示されます。
>>721 \u3053\u3093\u306b\u3061\u306f
みたいにUnicodeエスケープするしかないかも知れない。
723 :
デフォルトの名無しさん :04/06/19 05:08
それは面倒ですね。 やはり開発はすべて英語でやって、後からlocaleを付け加えるのが常識的なのでしょうか?
alert("こんにちは")にするなら、UTF-8じゃなくて、UTF-16の方がいい。 でもそうすると、script自体がパースされないだろうから、 クォーテーションの中だけUTF-16という 変則的な文字コードにしなきゃいけない。 結局、localeを追加した方が安上がりなのよ。
725 :
デフォルトの名無しさん :04/06/19 21:52
なるほど。了解しました。 詳しく教えていただいて、どうもありがとうございました。
もうお気づきかと思いますけど、
http://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さっぱり分からん。
ちなみにダウンロードマネージャの方はこんな感じ。 --- 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; ]>
>>731 可能です。
空の拡張をつくって、contents.rdfで
chrome://communicator/content/utilityOverlay.xulをoverlayしてやればいいのです。
ただ、ロケールはoverlayのdoctypeに完全に依存するので、
utilityOverlayにdoctypeがなかったら、
utilityOverlayを手元にコピーしてdoctypeを追加したものを
あらためてoverlayした方が安全かもしれません。
まいったな。せっかく教えてもらったのにさっぱり分かりませぬ。 一応XULチュートリアルの日本語訳も読んでいるが、分量が多くて どこが該当するのかも分かりません。参考になりそうな拡張ってありますか? それはともかく、xpiで実現可能というのが分かったのはありがたいです。
「Ctrl+何々でほげほげできるようにします。」系の拡張を Firefox Help 日本語版あたりで探してみると良いかも。 やり方はそのままSuiteにフィードバックできるので。
>>735 thanx. 動きますた。
*contents.rdf
<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="
http://www.w3.org/1999/02/22-rdf-syntax-ns# "
xmlns:chrome="
http://www.mozilla.org/rdf/chrome# ">
<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>
*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>
なんか変なところありますか? さて、あとはインストーラか。 メーラーの方は、mail3PaneWindowCommands.js, mailWindowOverlay.js, mailWindowOverlay.js を 書き換えて動作を変更しているのですが、こちらは実現できますかね。 一部の関数のみをxpiで差し替えて動作させるようなことはできますか。 それともoncommand=で呼び出される関数から変更した関数に至るまでの部分を すべてコピーする必要があったりしますか。
これでいいのですが、私が732-733で言いたかったのは、 直接utilityOverlay.xulをoverlayしてみては?ということです。 お分かりかと思いますが、overlayには2通りの方法があります。 ひとつは、「xulに直接<?xul-overlay?>を埋め込む」やりかたで、 もうひとつは「パッケージをインストールする」ことです。 結論から言いますと、この種の拡張(?)ではxulファイルが一切不要です。
>一部の関数のみをxpiで差し替えて動作させるようなことはできますか できます。 javascriptの面白い点は、関数といえども、オブジェクトのひとつに過ぎない、 と言う点です。 よって、代入できてしまうのです。 値は他の関数でもいいのですが、 名前空間を不必要に汚すよりは、 関数リテラルを代入するほうが望ましい、と思われます。
あっ、こうすればいいのか。 <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通りの方法があります。 すんません。よく分かっていません。
>>741 そうです。そういうことです。
>よく分かってない
>>736 ,
>>737 では両方使っていたんですよ。
utilityOverlay.xulを736にoverlayして、
736をdowloadmanger.xulにoverlayしていたわけですよね。
>>741 は一回しか使わなくて済んでいます。
当然741の方がお薦めです。
>>743 そんなに難しい事じゃないですよ。
例えば openURI() を乗っ取るなら
window.openURI = function(aURI, aReferrer) {
// hogehoge
}
と書くだけでもOK。
内部で元の関数の機能を呼び出したいなら
var originalOpenURI = window.openURI;
window.openURI = function(aURI, aReferrer) {
// hogehoge
originalOpenURI(aURI, aReferrer);
// foobar
}
という具合です。
元の関数を保持しておくオブジェクトの名前が他とかぶると
いけないからということで、後者についてはいくつかやり方があります。
上は一番単純な例。
メーラーの方はちょっと置いといて、NN4みたいにBackSpaceで上方向へ スクロールするようにする拡張を作ってみました。上の方法でばっちり動きました。 せっかくですので下の方法についてもう少し解説していただけるとうれしいです。
解説っていっても見たまんまなんですけどね。
>>774 後半の例は以下のような内容です。
1. 関数オブジェクト "(window.)openURI" の内容である関数を参照するエイリアスを
"originalOpenURI" という名前で作成。
2. "(window.)openURI"というエイリアスの参照先として新しい匿名関数を定義する。
3. 省略
4. "originalOpenURI"のエイリアスで参照している関数を実行。
5〜6. 省略
つまり
window.openURI => "function openURI()"
となっていたのを
originalOpenURI => "function openURI()"
window.openURI => "function()"(匿名関数)
に変更するということ。
NortonのAntiVirusかInternetSecurityかどっちのはたらきか知りませんが、 ポップアップ抑止の機能を導入すると、閲覧するWebページの先頭に var SymRealWinOpen = window.open; function SymWinOpen(url, name, attributes) { return (new Object()); } window.open = SymWinOpen; こんな感じのJavaScriptを挿入してきます。 やってることはこれと一緒です。
746はエイリアスとはちょっと違うと思う。 jsにとってのオブジェクトは実体そのものだからね。 本等にエイリアスなんだったら、名前解決が元のままのはずだしね。
>>746 えー、すんません、そういうことではなくて、
>元の関数を保持しておくオブジェクトの名前が他とかぶると
>いけないからということで、
の、回避方法はどういうのがあるのかなーということです。
>>749 その1。一意な名前の変数にする。
名前空間URIのようにすればほぼ確実。
window['
http://hoge/fuga:openURI '] = window.openURI;
window.openURI = function(uri, ref) {
// hoge
window['
http://hoge/fuga:openURI '](uri, ref);
// fuga
}
その2。クロージャを使う。
function init() {
var originalFunc = window.loadURI;
window.loadURI = function(uri, ref) {
//hove
originalFunc(uri, ref);
//fuga
}
}
init();
この例でいうinit()の部分さえ名前がかぶらなければ、
変数originalFuncは関数外部からはアクセス不可能なので
破壊される恐れもない。
>>750 なるほど。ありがとうございます。
メーラー用の拡張の作成は少し先のことになりそう。
XULチュートリアルを勉強している者です。
http://xul-app.hp.infoseek.co.jp/xultu-janit/rdfscript.html こちらのRDFデータソースの章に書いてあることを試したところ、
ドロップダウンリストに文字列を入力してボタンを押してアプリを再び開くと
ドロップダウンリストの項目がどんどん増えていくのですが、追加されたデータは
どこに保存されているのでしょうか。
「最後に、Flush 関数を使ってデータソースをディスクに書き出す。」とのことですが、
素人の安直な考えでは初めに読み込んだ recents.rdf ファイルへ書き込まれるのだろう
と思ったけど実際に開いてみると違いました。
要素のdatasourceをとってきてそれを直接編集しようとしていますね。 あまり、いいやり方ではないし、少し古いです。 多分、このスクリプトが書かれたころは、 Flush()で、recents.rdfに書き込まれていた、と想像しています。 ま、当世流とはちょっと違う、ということで。
よく調べたらプロファイルdirのlocalstore.rdfに保存されていました。
ま、そうだろうね。datasourcesで明示してなくても、rdf:localstoreは、 どの要素でも使用している。 というのは、persist属性とかで、値を保存しておいて、 長さや位置を覚えておくために必要だからだ。
firefox0.9でXULMAKER0.5使おうとしたら起動すら出来ないんだが 誰かやってない?
758 :
デフォルトの名無しさん :04/07/06 19:28
age
759 :
デフォルトの名無しさん :04/07/07 08:38
moz2chをインスコしたら、 mozillaのbookmarkが消失したぞ(゚Д゚)ゴルァ
>>752 買いに行ったらXULは来月号に飛ばされていた。
代わりにwxWidgetsとかいうやつが特集されていた。これはこれでおもしろそうではあるが。
拡張を作る上で、今までは、プログラムフォルダの下にあるchromeに フォルダをつくって、appname.jarなどに固めずやってたのですが、 新しい仕様でも、extensionsの下にフォルダを置いてできるんですかねぇ? about="urn:mozilla:extension:file:appname.jar" のところをいじったら出来そうな気もするんですが・・・。
>>766 "example"はパッケージとして登録されてる?
>>766 ええ、もちろんです。
installed-chrome.txt :
content,install,url,resource:/chrome/example/content/
skin,install,url,resource:/chrome/example/skin/classic/
ブラウザに直接クロムURLを打ち込めば一応ウィンドウは表示されます。
バインディングが成功すればそこにボタンも出るはずなのですが...
>>765 bugzillaに拡張を登録しろ、ってFAQに書いてあるが?
>>768 色々試してみたところ、ファイル名の拡張子がxblでは動かないようです。
xmlにすれば動きました。
私がこのチュートリアルをやってた頃はxblで問題なかったんですがねぇ。
XULPlanetのリファレンスはわりと頻繁に更新されていますが、
チュートリアルの方はMozilla1.0のころから更新されていないようです。
それをさらに和訳してあるわけですから、例が現実に追いついてないのも
仕方のないことなのでしょう。
>>770 うほほーー!xmlにしたら無事に出来ました!サンクスです。
>>733 が言ってるのはサイトじゃなくてxpiのことじゃない?
>>774 xpiダウソできました。
ありがとうございました。
スクロールバーの付いたbox要素などでもマウスホイールが効くようにはできますでしょうか?
>>778 まさにそれです!しかしかなり難しそうなのであきらめまつ...
>>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="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul ">
<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');
}
つづき。
XBL (example.xml):
<?xml version="1.0"?>
<bindings xmlns="
http://www.mozilla.org/xbl "
xmlns:xul="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul ">
<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 も参考にしてみて下さい。
すみません。 <?xml-stylesheet href="chrome://example/common/example.css" type="text/css"?> じゃなくて <?xml-stylesheet href="chrome://example/content/example.css" type="text/css"?> ですね。 あと、水平スクロールバーと垂直スクロールバーのそれぞれについて 処理を振り分けるのも忘れてました。まあその辺は適当に。
もう一つミスが…… <implementation> <handler event="DOMMouseScroll">(略)</handler> </implementation> ここは <implementation>〜</implementation> ではなくて <handlers>〜</handlers> です。
>>780-784 丁寧にありがとうございます!さっそく今試してみます。
このスレは親切な方が多くて助かります。
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="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul " onload="alert('onload');">
<iframe />
</window>
プロパゲーションが止められないのって、 実は結構不便な気もするな。 こんな感じでイベントハンドラを書けば済むのだが。 function myOnLoad(event){ if(event.target.localName=="window") alert('onload'); }
イベントバブルで制御できるんでは
preventBubbleって、そんなに便利でもないんだよなぁ。 一つのイベントに複数のリスナがある時とか。
ローカルに保存されたHTMLファイルを読み込み、パースしてDOMとして利用することは可能でしょうか?? var doc = (new DOMParser()).parseFromString(fileContent, "text/html"); alert(doc.title); とやってみたのですが、1行目でエラーとなります...
>>792 実はdomparserのtext/htmlモードは未実装なのです。
かわりに、innerHTMLを使ってください。
var URI = "
http://jt.mozilla.gr.jp/ ";
var doc = document.implementation.createDocument('', '', null);
doc.load(URI);
doc.addEventListener('load', docLoaded, false);
function docLoaded() {
alert(doc.title);
}
これでは何も表示されませんですけど、何か間違っているようですね。。
>>795 mozilla 1.6 で試してみたけど…
doc.async = false;
var result = doc.load(URI);
alert(result);
してみると doc.load(URI) が false が返してくるみたいね… なんでだろ??
XUL内に不可視のbrowser要素を配置してそこにloadURI()で読み込んだら
だめかな?
>>795 ありがちなミスだけど、ひょっとして、XULでやってる?
createDocumentのnamespaceを無指定にすると、実行環境に影響されるから、
HTMLDocumentではなく、XULDocumentになって、htmlファイルをロードできない。
>>796 hidden=trueなbrowserに対してloadURIでHTMLをロードさせたら
Type Error: this.docShell has no properties
と怒られました。
>>797 なるほど、確かにXULでやってました。
>>798 hidden="true" (displaynone)だと初期化がされないので注意が必要。
collapsed="true" (visibility:collapse)なら動くはず。
>>797 >createDocumentのnamespaceを無指定にすると、
ってことは正しい(?)指定をするとXULでもHTMLDocumentが返ってくる
ようになるんでしょうか?
>>801 いろいろ探してみたけど、HTMLDocumentを作るのって意外に難しい。
doctypeを決め打ちしてしまうと本末転倒だから、やっぱ無理かも。
xhtmlならとても簡単なのに、この差は一体…
XULアプリ内で mozilla と firefox を区別する方法ってないですかね??
>>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が帰ってくるかどうかを調べるとか。
piro氏のTBEはインスコ時に判定しとくって手を使ってるみたいね
インスコ時はbrowser.jarを見て、 インストール後の動作では>804の後者の方法を使ってます。
>>803 firefox 0.9以上なら新しいEM用なのか
about:configのapp:idにFirefoxのGUIDが書き込まれてます
インストール後なら、これを見て判断するというのはどうでしょう?
fileスキームのURIで示されたローカルファイルを削除する方法はありませんか? たとえばfile:///C:/foo/bar.jpgだったり、file:///home/nanashi/bar.jpgだったり、 OSに依存しない方法があればいいのですが。
jslib使うとかそこからコードをぱくるとか
ってかただaFile.remove(true)でいいっぽい
ファイルのURIからnsIFileは作れないようです。 var aFile = Components.classes['@mozilla.org/file/local;1'] .createInstance(Components.interfaces.nsILocalFile); aFile.initWithPath("file:///C:/foo/bar.jpg"); で、パスが認識できないと怒られます。
>>812 ああ、まさにそちらに書いてあるとおりのことでした!
ありがとうございました。
見事に同姓同名だな
保守
現在フォーカスしているブラウザタブのアイコン(いわゆるfavicon)のURLを得る方法を模索しています。 top.window.document.getElementById("page-proxy-favicon").src でとりあえずそれらしいものは得られるのですが…
>>819 gBrowser.selectedTab.getAttribute('image')でどうでしょう。
空以外ならfaviconと判断できそうな。
>>820 それでばっちりでした。どうもありがとうございました。
a.xulからopenDialog('b.xul')でダイアログを開き、そこでの入力結果をa.xulに返す というかb.xulでの入力結果をa.xulで受け取る方法はありますでしょうか? ただの文字列を入力させるだけなら、a.xulでvar input = prompt(...)で入力を受け取れますが、 今回はユーザに入力させたい項目が複数あるという状況であります。
>>823 今試してできました。見事に簡単ですね!
>>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の処理が先に進んでしまうので注意。
//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しちゃったほうがいいのかなぁ・・・
>>827 ,828
<button tooltip="hogetip" label="hoge" />
<tooltip id="hogetip"><iframe src="about:mozilla" /></tooltip>
とやってやれば、別ページをポップアップ表示することは"一応"できるようだが、
サムネイルを作る方法 or ページ表示を縮小する方法を知らないので教えられない。
831 :
デフォルトの名無しさん :04/09/02 11:32
>>828 ,
>>829 ,
>>830 ありがとうございます! 参考にさせていただきます!
>>828 の拡張は画像で表示するんですよね。
ポップアップしたページからまたポップアップ……と階層的に表示したいと考えているので確かにそれだと無理そうです。
>>830 のようにページ表示を縮小する方向で作ってみることにします。
overlayで存続の要素を削除できますか?
既存の間違い?
>>834 そうです。
結局styleでdisplay:noneにして解決しました。
拡張でstyleを指定するのは、あまりよろしくない。 hiddenプロパティの方がいい。
xul.cssには *[hidden="true"] { display: none; } と書いてあるんだけどね。
>>836 何故でしょうか?
stylesheetをオーバーレイさせて、ほぼ一意性があるようにセレクタを設定しました。
そこを追加・削除できる拡張とバッティングするはずですが、hiddenプロパティーでも同じはずなので一番いいのはDOMで要素ごと削除だと思いますが、ちょっとめんどくさい…
#日本語って難しい
ほぼ一意性があると思ってるんならそれでいいんじゃない? DOMで要素を削除するのはやめた方がいい。
0.9対応の拡張を1.0対応にさせるにあたって、変更すべきところは install.rdfの対応バージョンのところだけでしょうか。
ローカルファイルの変更を監視してイベントを発せさせるようなことはできますか?
>>802 いまのところ、URLからHTMLDocumentオブジェクトを作るのはできないのでしょうか?
browser要素などを隠してdocumentを得るのはダサいですよね。
HTMLDocumentからanchorエレメントを得て先読みするものを作りたいのですが
何かいい方法内でしょうか?
あと、DOMImplementationのcreateDocumentからHTMLDocumentが返ってくることって
あるんですかねぇ。
XMLDocumentだとできるようだが・・・。
>>795-802 ,
>>843 nsIDocumentLoaderFactory というのを発見したので、試しに
Components.classes["@mozilla.org/content-viewer-factory/view;1?type=text/html"]
を呼んでみたが、実装されていないのか動かない。
Components.classes["@mozilla.org/content/document-loader-factory;1"].createInstance(Components.interfaces.nsIDocumentLoaderFactory) はきちんと返しているみたいだけれども、 nsIDocumentLoaderFactory::createBlankDocument(in nsILoadGroup, out retval nsISomething); の引数である nsILoadGroup の扱い方がわからなかった。
開きなおって、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 みたいのがあると便利だな...
>>847 Firefoxまとめサイトにそういうページを作ればいいのでは?
wikiの乱立はやめてほしい
>>847 確かに返ってきますね。
でも、loadURIでuriを指定してもダウンロードはしている様だけど
中身が入ってないっぽい?
timerかlistener使って読み込み待ちすればいいのでは?
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"); どうすればいいでしょうか?
ってかwsdl使えるのね どっか解説サイトないかなぁ
やっとできた idlist={ id:"text" id:"text2" }
ってだめだ 名前空間のの設定ができねぇorz
Firefoxに自作の機能拡張入れてみたんだが localeのja-JPのリソースが使用されないんですが何か設定いりますか? 自作のが駄目で、メジャーなのをいくつか入れてみたけど全部en-USのが使われました。 Firefox自体は通常インストールで何もいじっていません。
luxorのXULはMozillaのXULと違う所が結構あると聞いたことがある気がする
>>863 結構ある、どころか全くの別物だよ。
とりあえず、このスレのXULとは何の関係もない。
質問です。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; } });
>>869 できました。ありがとうございました。
どうやら更新確認のrdfにもキャッシュが効いてたせいで余計混乱してたみたいです。
キーバインドでの質問なのです。
以下のものを *.xul で保存して Firefox(0.10.1) で読み込み、
Alt + 何か を押すと(k以外の何でも)反応してしまい、他のショートカットを上書きしてしまいます。
何が悪いのかさっぱり解らないのですが、ヒントだけも教えてもらえないでしょうか?
<?xml version="1.0"?>
<window id="keyconfigOverlay"
xmlns="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul ">
<keyset id="mainKeyset">
<key id="keychk" keycode="k" modifiers="alt" oncommand="alert('hoge');" />
</keyset>
</window>
keycode じゃなくて key modifiers の値は alt より accel のほうがいいかも。
>>872-873 ありがとう。
思い通りになりました。m(_ _)m
しかし、accelは使用済みが多いし、ctrl+altも駄目となると、結構厳しいですね……
俺は ctrl(accel)+shift をよく使う。空いてるし。
>>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 使う。
的外れだったらスマソ
>>876 GetDataSourceBlocking ですか、ありがとうございます。ただ、これだけだと selectedIndex = 1; がうまく動きませんでした。
どうやらここでの非同期な動作は、「RDF 読み込み」と「template による要素の生成」のふたつのようで、
>>876 は前者、
>>866 は多分後者の処理の終了を受け取る方法だと思いました。
そこで
>>876 の最後の行 oListBox.selectedIndex = 1; の手続きを
>>866 の方法で行うことにしたら、正常に動作するようになりました。
キャッシュのすべてのエントリを取り出す方法はありませんでしょうか? nsICacheServiceにvisitEntriesなるメソッドがあったりしますが…。
>>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を返すとそこで止まります。
ttp://developer-test.mozilla.org/xpcom/api/ こんなのがあったんですね。
公式版xulplanetか…
XBL から外部の、例えば hoge.js を読み込む方法はありませんでしょうか?
xul の名前空間指定しておいて
<xul:script src="..."/> とか
>>242-246 の mozIJSSubScriptLoader 使うとか。
chrome:// 内じゃないと無理だけど。
<xul:script src="..."/>はエグイな。
>>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>
onkeypress とかのイベントハンドラでキー入力を検知できますが、 Input Method を使った(Atok,IME,ことえり,XIMとかの)日本語入力を検知する方法はありませんか?
>>886 C++とかでコードを書けば可能なのではないかと。
インターフェイスをヘッダで定義してるのは、ネスケ時代の古いコードだね。
XULでファイルの圧縮はできますか?解凍はできそうなかんじですが。
できない。解凍はできる。
documentのHTMLソースを文字列として取得したいのですが、 document.getElementsByTagName("html")[0].innerHTMLの前後にHTMLタグをくっつける以外の方法はありますか?
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); ただ、このためだけに通信を行わなくてはならないのが難ですね。
>>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);
…
という方法で簡単にできたのですが…
>>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);
…
という方法で簡単にできたのですが…
fireftp(だったっけ? firefoxにFTPの機能を加えるやつ)のソースを覗くとわかるかも。
スクリプト上でどうやってバイナリを表現しているかにも拠りますが… バイナリファイルのことだったら、そこのsisのかわりにnsIFileInputStreamを もってきて、initすればそのまま使えます。 今日はnsIInputStreamの話ばっかりだな…
>>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) {
}
>>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) {
}
現在、Firefoxの拡張作成をちょこちょこ勉強しているのですが、 Tab,Windowの新規作成時のタイミングを得たいのですが、 試してみたaddEventListener("load",では"更新"にも反応してしまいます。 他に何か方法はありますでしょうか?
>>902 window.addEventListener('load', listener, false)
最後のfalseがポイント
>>903 遅くなりました、情報ありがとうございました。
とても簡単なことだったんですね……。
とりあえず、ここのLogに残ってるLinkを少しづつ読んでいって
もう少しましな知識をつけたいと思います。
このスレが900まで伸びるとは…
906 :
デフォルトの名無しさん :04/11/10 03:46:27
Firefox 1.0記念age
flyson氏もplus7氏もやめちゃって、潰える予感
>plus7氏もやめちゃって 誰が何をやめたんですか?
FIreFoxの検索窓を記述するにはどうしたらいいですか?
chrome://browser/content/browser.xulを見てみたらどうです?
gecko を lisp でコントロールしたいです
912 :
デフォルトの名無しさん :04/11/16 12:56:59
913 :
デフォルトの名無しさん :04/11/16 13:23:18
Firefoxの拡張って開発中はどこに置いとけばいいんですか? XULチュートリアルにあるように /chrome の下に置いて installed-chrome.txt 書き換えて再起動しても読み込まれてない みたいなんですが… chrome URL で直接呼び出すとちゃんと出てくるので 文法エラー等はないはずです。
XULのキャッシュが効いている可能性大では? about:configからnglayout.debug.disable_xul_cacheをtrueにしてみてください。
あるいは再起動したつもりがプロセスが残ってたりとか。
XULを自分のプログラムに組み込みたいんだが、指針みたいなものってあるかな。
geckoを使わない限り、XULは面白くもなんともないと思う。
XULプログラミング始めたいのですが 読みやすくてシンプルなExampleのおすすめは何ですか? 私のスキルはC,Python,PHP,です
>>921 Sageとかコードが綺麗なのを参考にするといい。
GrepSidebarはお勧めしない。
>>922 ー923
ありがとうございます
さっそく始めてみます
ああ、そうそう、英語でいいならぜひそちらを。
>>916 一回削除したはずだったのですが
もう一度削除してやり直したらうまくいきました。
ありがとうございます。
Firefoxの拡張のお作法についてcurrent practiceをまとめたページはないですか? *.xulとか*.jsは書けたのですが、それをxpiにするにはどういうファイルを 用意するかとか、xpi/jar内部のディレクトリ構成とかについて ちゃんと書いてあるページが知りたいです。 一応、自分が使ってる拡張のソースを参考に見様見真似でinstall.rdfや install.jsを書いたのですが。 あと拡張の更新情報のためにwebに載せるRDFファイル(update.rdf?)の書き方も。
>>930 ,931
おお、まさにこれです。ありがとうございます。
サイトマップからも探したのですが見付けられませんでした。
mozilla.orgのweb構造は多分に謎です……
>>932 > mozilla.orgのweb構造は多分に謎です……
禿同
935 :
デフォルトの名無しさん :04/11/18 11:02:09
Mozillaの履歴の情報をIEのWinInetのように 外部から操作することはできますか? XULアプリからでもかまいません
936 :
デフォルトの名無しさん :04/11/18 12:33:24
>>935 具体的には
var history = Components.classes["@mozilla.org/browser/global-history;2"].
getService(Components.interfaces.nsIGlobalHistory);
history.removeAllPages(); //←
>>936 の nsIGlobalHistory.html参照
のように使う。rdf:history というRDFデータベースとしても利用できたはず。
http://mozdev.org/bugs/show_bug.cgi?id=6514 RSSフィードのLink要素などの中に&や'が含まれていても
デコードすべきところでしてくれないてバグだが、拡張機能Sageだけじゃなく
Firefox1.0のライブブックマークにも同じ症状があるぽいよな…
仮に変換だけ実装しても脆弱性起こしそうだし、これはどう直すべきなんだろう。
自分はXULも何もさっぱりなので手も足も出ないがorz
>>938 本当にそんなバグがあるんだったら、
とりあえず、bugzilla.mozilla.orgの方を探してみた方がいいと思うよ。
>>940 そのバグで報告されているリンク先は
&となっているので、まともなxmlじゃないと思う。
あ、やられた… &amp;amp;ね。
943 :
デフォルトの名無しさん :04/11/22 14:56:54
二つのRDFをメモリー上で一緒にするスマートな方法ってありませんか?
一緒にするとは?
合成ってことです。 nsIRDFCompositeDataSourceはnsIRDFDataSourceから作れないようなので
var myCDS = Components.classes['@mozilla.org/rdf/datasource;1?name=composite-datasource'].createInstance(Components.interfaces.nsIRDFCompositeDataSource); myCDS.AddDataSource(myDS1); myCDS.AddDataSource(myDS2); ではダメですか?
どちらかと言うと片方のRDFに別のRDFを合成して、OKを押したら合成後のRDFをflushさせて書き出したいんですよね。 まぁrdfのテンポラリファイルを作るか、すべてのリソースを移動すればいいんですけどね
RDFとして扱わずに単純なXMLとして操作してはどうだろう
うほっ良スレ!
>>949 それは昔やってました。
thunderbirdでdocument.evaluateが使えなくRDF化している最中でつまずきました
>>951 それを使えばできそうですね。
ありがとうございます
#というかこんな物があったなんてorz
#独自でラッピング(?)してました。
バリバリにグローバルつかってるのは、 overlayした時に不便だから、結局自分で手書きした方が楽なんだよねぇ。
もう一個質問いいですか? Seqが削除できません。 Unassertで関連を切っても残ってしまいます。 何か方法ありませんか? #それともこっちのミスかなぁ
>>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) {
}
}
みたいにすれば消えるはず
それしてるんですよね。 Seqの中身をすべて削除してunassertしても空のどことも関連がないSeqが残ってしまいます。 #やっぱコードのミスかなぁ
>>956 スクリプトのどこかにミスがあって二重にassertしてるのでは?
>>955 の
value = ds.GetTarget(node, key, true);
の代わりに、GetTargetsで全てのノードを取り出してunassertすれば
より確実だと思うけど、野暮ったいから自分のスクリプトではやってない。
assertはしてないです。 元からあるRDFを関数再起呼び出しでunassertするだけなんですが… GetTargetsでも一つしか帰ってこない気がします。 もしかして削除の順番とかが関係するんでしょうか?
>>959 え…
本当ですね。
でも最後のboolがないだけなので最後をtrueとしても問題はないですね。
>>959 コピペして書いたので間違えてましたorz
Firefoxのブックマークサイドバーにツールチップを表示する拡張を 作ろうとしているのですが、デフォルトで表示される表示領域より ツールチップのラベルが長いときのツールチップを消せません。 デフォルトのツールチップはどこで表示されているのでしょうか?
訂正 ×ツールチップのラベルが→○ブックマークのラベルが
む、ネイティブ側にあるのか しかもそのコードが悪さをしてるのかtreecellにtooltip設定しても まともに動作しない…
>>960 問題ないの? じゃあ直さないでいいや。
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);
.createInstance().QueryInterface(Components.interfaces.nsIMsgQuote); -> .createInstance(Components.interfaces.nsIMsgQuote);
つーか、どこで死ぬのかわからないってことは、 これからも手探りでやるつもり? 自分には無理だ…
973 :
デフォルトの名無しさん :04/12/03 19:12:01
>>971 ありがとう。でも結果同じでやっぱり死んじゃう。・゚・(ノ∀`)・゚・。
QuoteMessage()の呼出し後に、onStartRequest()は実行されてるけど、
onDataAvailable()が実行されずにアプリケーションエラーで死亡(´・ω・`)
XULでプログラムしてる人って、xulplanet.comとMozillaのソースコード
だけで何とかなってるの?
>>973 あ、それは自分も経験がある。
引数のinputStreamをうそでも触っておいた方がいいみたい。
>xulplanet.comとMozillaのソースコードだけ
まあ、ない袖は振れないってやつですね。
Firefoxの拡張作る際の手順だけ誰か教えて下さい('A`)
>>974 >引数のinputStreamをうそでも触っておいた方がいいみたい。
ぜひ、詳しく(`・ω・´)
>>977 ありがとうございます。
そのページはすでに、すべて読みました。
私がやりたいのはFirefoxにメニュー項目を追加したりする、Firefoxの拡張を作る際の手順です。すんません('A`)
そういった親切なリファレンスはないので、 似たようなことをやってる拡張を探して中身を見るのがてっとりばやいのでは?
やっぱりそうですよね。どうもありがとうございました('A...
>>980 あなたが親切なリファレンスを書くとみんなが幸せになれる
>>981 今私もいつかそういう手順を説明した文章を書こうかなと思ってたところです。('...
RDFの個々の要素についての資料が全然見つからないんですが、 どこかにありますか?
個々の要素とは?
たとえば、他の人が書いたコードを読んでいて、 document.getElementById("messagepane").contentDocument; document.getElementById("statusbar-icon"); とかあった場合に、messagepaneやstatusbar-iconが何なのか、 ググっても全然見つかりません。
RDFではなくXULではないでしょうか。 XULを見てそのidを探してみてください。
988 :
デフォルトの名無しさん :04/12/04 05:37:08
ありがとうございます。XULの中にありました。
___ | 安 | | 倍 | チーン… | ぬ | | す | | み | ,,,. | 之 | ,'"';, 、''゙゙;、). | 墓 | 、''゙゙;、),、 ゙''!リ'' i二二二二!゙''l!リ'''゙ ‖ `i二二二!´ ‖ 昌 |: ̄ ̄ ̄ ̄:| 昌 | ̄:|_|;;;l"二二゙゙l;;|_| ̄:| | :|::::::| |;;;;;;;;;;| |::::| :| | :|::::::|┌─┐|::::| :| ./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\
某拡張のセキュリティホール見ておもったんですが
システムアクセスの権限を放棄するようなことはできないのでしょうか。
>>659 にそれっぽいことが書いてるんですが肝心のプロパティやメソッドは
スクリプトからアクセスできないものばかり…
991 :
デフォルトの名無しさん :04/12/04 14:25:27
XULといえば アフリカの、ジンバブエを首都に持つかつての勇猛な民族ズールー族を思い出す。 現在では国名もジンバブエ?
XULってエックスユーエルって読むんじゃねーのかよ!ヽ(`Д´)ノ
993 :
デフォルトの名無しさん :
04/12/04 18:32:28 XULの読みはズールじゃなくて、クスールだろ? でも、Xylitolはキシリトールじゃなくて、ザイリトールだ。