Mozillaでプログラミング(XUL) その2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG前スレ
Mozillaでプログラミング(XUL)
http://pc5.2ch.net/test/read.cgi/tech/1019704370/
0232デフォルトの名無しさん
05/02/21 09:24:590233デフォルトの名無しさん
05/02/21 16:36:31guidのwindowsでの正式な出し方はadvapi32.dllを使うのでどうしようもありません。
またunixではランダムデバイスを使っているようです。
ようはランダムであれば良い訳で別にMath.randomでも問題なさげと判断しました。(内部処理までは確認してません。)
0234デフォルトの名無しさん
05/02/21 19:47:39でも、なるべく衝突しないようにしなきゃいけないわけで。
0235デフォルトの名無しさん
05/02/21 20:08:03それなりに人によって使う領域が違ってくるように考えられている。
計算の仕方というのがあるのできちんとやるように。
0236デフォルトの名無しさん
05/02/21 20:25:31JSの実装がどうなってるか確認してみます。
0237デフォルトの名無しさん
05/02/21 20:26:21角度とか?
つか、偉そうなこと言うんだったらもうちっと具体的なこと言えばいいのに(笑)
0238デフォルトの名無しさん
05/02/21 20:39:20XPCOMあさってみます。
0239デフォルトの名無しさん
05/02/21 20:45:060240デフォルトの名無しさん
05/02/21 20:53:08DCE 1.1 RPC Specificationを読め。
0241デフォルトの名無しさん
05/02/21 21:06:11http://lxr.mozilla.org/mozilla/source/calendar/libxpical/token.c
是見るとやっぱり時間で求めてるorz
他の所も
>"uuid" + (new Date()).getTime();
な感じで無理っぽいなorz
0242デフォルトの名無しさん
05/02/21 21:26:29uuidって仕様あったんだ
某所で聞いた時誰も答えてくれなかったorz
0243デフォルトの名無しさん
05/02/22 00:04:37GUIDを修正してみた。
ただしvbs関係でエラーが出たりウイルスチェッカーが引っかかったりする可能性大。
Cドライブ以外にプロファイルがある時は上手く動作しない。
0244DCE
05/02/23 00:21:46uuidgen / guidgen で調べろ。
0246デフォルトの名無しさん
05/02/24 17:30:12そのツールって内部から呼べて、さらに値返ってくるの?ってことでしょ
>>245
手動の計算方法は*BSDのソース見たときに載ってた気がする
まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
あれって確かMACアドレス取ってるんだっけ?
# Windows系だけでOKなら、現行の仕様で問題無さそうだけど
0247デフォルトの名無しさん
05/02/24 17:35:59linuxでは/dev/urandomや/dev/randomを読み込むだけでよさげだけど環境が無いので対応は後回し。
0248デフォルトの名無しさん
05/02/24 17:52:37> 手動の計算方法は*BSDのソース見たときに載ってた気がする
> まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
> あれって確かMACアドレス取ってるんだっけ?
そう。DCEのSpecの"UUID Format"ってとこに書いてある。
要するにMACアドレスが(建前としては)一意性を保証されてるってことと
時刻を利用して理論的には一意な数値を叩き出す。
MACアドレスが尽きたらどうするんだろうというのは昔から謎。
0249デフォルトの名無しさん
05/02/24 17:54:16その1は落ちていて読めていません。
0250デフォルトの名無しさん
05/02/24 18:32:10とりあえずその1
http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_tech/1019/1019704370.html
データアプリケーションは作れなくも無いけど、読み込みスピードの問題が発生してくるかも。
0251デフォルトの名無しさん
05/02/24 18:48:53http://jsdb.sourceforge.net/index.html
0252sage
05/02/25 05:54:21ありがとうございます。
既存のDBを使いたかったら、PHPとかサーバサイドでその処理を行い、
xul+jsはフロントエンドとして使う、ということですね。
flexとかと同じですね。
0253252
05/02/25 05:55:150254デフォルトの名無しさん
05/02/25 08:59:390255デフォルトの名無しさん
05/03/03 08:04:06そういった細かい仕様変更やバグフィックスなどに関する情報はどこで手に入れることができますでしょうか?
0256デフォルトの名無しさん
05/03/03 17:09:38mozillaのwikiに載ってるよ。
ちなみに>>228はxulrunnerでしか関係ないと思われ
0257デフォルトの名無しさん
05/03/03 19:55:190258デフォルトの名無しさん
05/03/03 21:16:35その内容(value)を閉じても保持するにはどういう方法がありますか?
要はスタティックな変数が確保できればいいんですけど、
function hoge(){};
hoge.prototype = {
load: function(){
var hogeside = document.getElementById("hogeSidebar");
hogeside.value = ++hoge.prototype.count;
},
count:0
}
var hogehoge = new hoge();
例えば上のようなコードで、サイドバーを開く度にcountをインクリメントして表示だと、
どういう風に書けばいいでしょうか。
(上の例では毎回1が表示される)
0259258
05/03/03 21:21:48countを〜じゃなくて、テキストボックスのvalueをインクリメントして〜、です
0260デフォルトの名無しさん
05/03/03 21:28:250261260
05/03/03 21:30:200262258
05/03/03 21:49:32ありがとうございます。
ただ、例なので単純に数値のインクリメントにしてみたんですけど、
実際はテキストボックスでなくツリーで、
ツリー内の状態を保持しようと考えてます。
その場合もやっぱりpreferencesしか手はないでしょうか?
0263デフォルトの名無しさん
05/03/03 21:56:33それだったらrdf
0264デフォルトの名無しさん
05/03/03 22:50:030265デフォルトの名無しさん
05/03/05 00:16:24ttp://piro.sakura.ne.jp/latest/2005/03.html#d5-A7F7BD1E-1
0266デフォルトの名無しさん
05/03/05 01:12:36乙です。
chrome.manifestはinstalled-chrome.txtの記述にさらにcontents.rdfのoverlayの記述を加えたような感じですね。
XMLではないので読み書きしやすいので、こちらの方がよさげな気がします。
ただ、今までinstall.rdfで登録していた拡張の名前やバージョン、アップデートURLなどの情報はどうなるのだろうか。
0267デフォルトの名無しさん
05/03/05 01:55:040268デフォルトの名無しさん
05/03/05 12:18:13いや変わらないでしょ
>install.rdfと
って所はただのミスでしょ
一箇所にまとめるのもいいと思うしスピードを上げるのもいいけどRDFの採用を減らすのはどうかと思うな…
0269デフォルトの名無しさん
05/03/05 13:28:130270デフォルトの名無しさん
05/03/07 20:05:14window.open("chrome://*",null,"chrome,alwaysRaised");
が聞かない様な気がするのですがどうすればいいのでしょうか?
0271デフォルトの名無しさん
05/03/07 20:55:510273デフォルトの名無しさん
05/03/07 21:21:320274デフォルトの名無しさん
05/03/07 21:28:45'_blank'になおしますた。
それと上手くいったけどtopmostっていってもfirefox内だけなのねorz
0275デフォルトの名無しさん
05/03/08 00:14:10と言っても特権持ったXULアプリならできても良さそうなもんだがな
0276デフォルトの名無しさん
05/03/08 01:32:070277デフォルトの名無しさん
05/03/08 23:47:160278デフォルトの名無しさん
05/03/09 22:15:180279デフォルトの名無しさん
05/03/09 22:32:56ええ、確かにIE+ASP.NETとは比べ物になりませんよ
やりようによってはウイルスだってハードディスク丸ごとフォーマットだってできちゃうXULに勝ち目はありません。
0280デフォルトの名無しさん
05/03/10 16:41:17是使えればもっと色々なことできそうなのに…
誰かパッチ書いてくれないかなぁ(他人任せ)
0281デフォルトの名無しさん
05/03/10 23:37:030282デフォルトの名無しさん
05/03/13 08:09:28通常呼び出される場合には手を加えず、特殊な場合だけ動作を変えたいのです。
0283デフォルトの名無しさん
05/03/13 10:14:170284デフォルトの名無しさん
05/03/13 11:11:35overley の js で通常と特殊を振り分ければできるっしょ。
0285282
05/03/13 16:27:280286デフォルトの名無しさん
05/03/14 18:14:21chrome内ならできるようにして欲しいなぁ。
でないとランチャーや時計みたいな小物アプリが…
0287デフォルトの名無しさん
05/03/14 18:49:13ウンコモラッシャー!
0288デフォルトの名無しさん
05/03/15 11:48:20inIだからDOMiの為の何か。
0289デフォルトの名無しさん
05/03/18 00:17:59ツールバーでアイコンとアイコンの間に仕切り線を入れたいのですがどうしたらいいのでしょうか?
デフォルトであるブックマークのツールバーの「ホーム」と「ブックマーク」の間にある仕切り線みたいなのが良いです。
よろしくお願いします。
0290デフォルトの名無しさん
05/03/18 00:43:15separatorかと思ったけど、
これだったらちょっと検索しただけで分かるよね
他の何かかな?
0291デフォルトの名無しさん
05/03/19 08:48:410292デフォルトの名無しさん
05/03/19 23:33:07リストのラベルをJavaScriptで作成した変数(配列変数)を使いたいんですか
どうすればいいんでしょうか。
具体的には以下の通りです。
0293291
05/03/19 23:33:51<![CDATA[
teArray = new Array();
n = 0;
while (n<5) {
teArray[n] = n + "番目";
n++;
}
]]>
</script>
<menulist>
<menupopup>
<menuitem label="≪teArray[1]を使いたい≫" oncommand="sk1()"/>
<menuitem label="≪teArray[2]を使いたい≫" oncommand="sk2()"/>
<menuitem label="≪teArray[3]を使いたい≫" oncommand="sk3()"/>
<menuitem label="≪teArray[4]を使いたい≫" oncommand="sk4()"/>
<menuitem label="≪teArray[5]を使いたい≫" oncommand="sk5()"/>
</menupopup>
</menulist>
0294デフォルトの名無しさん
05/03/19 23:46:18menuitem自体を動的に挿入汁
0297デフォルトの名無しさん
05/03/19 23:54:540298デフォルトの名無しさん
05/03/19 23:55:07menupopupにID付けといて、
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
みたいにすればいいんじゃ?
ただしonloadなどで実行してね。
0299デフォルトの名無しさん
05/03/19 23:57:130300292
05/03/20 14:12:49ありがとうございます。早速やってみたのですが・・・、クリックしてもリスト(アイテム)が出てきません。
以下のスクリプトで実行しました。どこに問題があるか教えていただけると幸いです。
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
title="XUL"
onload="ttt01()"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript">
<![CDATA[
function ttt01() {
teArray = new Array();
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
}
]]>
</script>
<menulist>
<menupopup id="mi">
</menupopup>
</menulist>
</window>
0301デフォルトの名無しさん
05/03/20 15:19:18menupopupのchildNodesが見あたりませんが……それじゃ動くはずないって。
皆さんが言ってるのは、
<script type="application/x-javascript">
<![CDATA[
function ttt01() {
teArray = new Array();
var mi = document.getElementById("mi").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
}
]]>
<menulist>
<menupopup id="mi">
<menuitem oncommand="sk1()"/>
<menuitem oncommand="sk2()"/>
<menuitem oncommand="sk3()"/>
<menuitem oncommand="sk4()"/>
<menuitem oncommand="sk5()"/>
</menupopup>
</menulist>
とするか、
0302デフォルトの名無しさん
05/03/20 15:22:55<script type="application/x-javascript">
<![CDATA[
function ttt01() {
var menulist = document.getElementById("ml");
for(var n= = 1; n < 6; i++){
mpopup.appendItem(n + "番目").setAttribute("oncommand", "sk"+n+"()");
}
}
]]>
<menulist id="ml"/>
とするか、ってことです。
0303デフォルトの名無しさん
05/03/20 15:27:25<script type="application/x-javascript">
<![CDATA[
function ttt01() {
var menulist = document.getElementById("ml");
for(var n= = 1; n < 6; i++){
menulist.appendItem(n + "番目").setAttribute("oncommand", "sk"+n+"()");
}
}
]]>
<menulist id="ml"/>
が正解。
とりあえずDOM(Document Object Model)の基本を勉強した方がいい気がする。
http://moz.skillup.jp/docs/dom/reference/javascript.html
http://www.mozilla.gr.jp/jt/xul/progress.html
http://www.parkcity.ne.jp/~chaichan/src/javascdom00.htm
このへんとかどうかな。
0304デフォルトの名無しさん
05/03/20 18:45:25contentAreaUtil.js内部の
saveURL()
↓
saveInternal()
と関数を追っていったところ、その関数の最後の
var sniffer = new nsHeaderSniffer(aURL, foundHeaderInfo, data, aSkipPrompt);
の1行で躓いてしまいました、何方か、このクラスに関する資料や、(期待出来ないけど)saveInternal関数の詳細解説
ファイル保存時に、好きなファイル名を指定出来る方法等をご存じでしたら、お知恵をお願いいたします
単純に、aFileName引数に適当な名前を入れ込んでしまえば上手くいくと思ったら、綺麗に動いてくれなかった物で…
一応、作りかけ…、普通にファイル保存しか出来ません
http://www.geocities.co.jp/Playtown-Knight/9224/img_collect.zip
0305デフォルトの名無しさん
05/03/20 20:44:41そんな小難しいことやんなくても、nsIWebBrowserPersistのsaveURIで保存すればいいんじゃないの?
http://piro.sakura.ne.jp/xul/tips/x0015.html
0306デフォルトの名無しさん
05/03/21 00:09:05DOMインスペクタのソースを一通り眺めてみたけど理解できずorz
0307デフォルトの名無しさん
2005/03/21(月) 04:13:03DOM Inspectorのソースは見てないがMutation Events用のリスナを登録してみるのはどうだろう。
ただしまともに実装されているのかは知らないが。
Mutation Events not created or dispatched for XML document that is loaded into memory but not rendered in a window/frame
https://bugzilla.mozilla.org/show_bug.cgi?id=201236
0308デフォルトの名無しさん
2005/03/21(月) 05:44:170309デフォルトの名無しさん
2005/03/21(月) 12:50:500310デフォルトの名無しさん
2005/03/28(月) 15:03:55「調査対象ノードをマウスで選択します」ボタンの動作を見る限りでは、
予め対象のDOM Documentを格納しておいてボタンを押されたとき(監視開始時)に
対象ドキュメント.addEventListener("mousedown",リスナー,true);
として、リスナーでevent.targetとして対象ノードを取得しているようです。
参考資料
chrome://inspector/content/viewers/dom/dom.js
http://lxr.mozilla.org/mozilla/source/extensions/inspector/resources/content/viewers/dom/dom.js#427
http://lxr.mozilla.org/mozilla/source/extensions/inspector/resources/content/viewers/dom/dom.js#964
>>306 さんの仰る「ノードの監視」の意味がわからなで答えているので、主旨が違ってたらごめんなさい。
0311デフォルトの名無しさん
2005/03/31(木) 14:04:56のWINNT 5.0 sweetlou Dep %のログのエラーの部分見てワロタ
>d:/builds/tinderbox/XR-Trunk/WINNT_5.0_Depend/mozilla//dist/bin/firefox.exe does not exist.
>Error: binary not found: firefox.exe
ってw
0312デフォルトの名無しさん
2005/04/07(木) 22:26:45>Bug 281988 を修正したところ影響が大きく、いくつかの拡張機能が動作しなくなっている
0313デフォルトの名無しさん
2005/04/07(木) 23:32:16具体例を挙げて説明キボンヌ。
0314デフォルトの名無しさん
2005/04/08(金) 00:12:190315デフォルトの名無しさん
2005/04/08(金) 01:18:560316デフォルトの名無しさん
2005/04/08(金) 10:57:25gBrowser.contentWindowやdocument.popupNode.ownerDocument.defaultViewは今までどおり使える。
オマケ
ttp://piro.sakura.ne.jp/latest/2005/04.html#d8-A8239515-1
0317デフォルトの名無しさん
2005/04/08(金) 23:09:52> Mozilla/Firefox のセキュリティ修正は IE のようなパッチ方式ではなく、
> 全体を丸ごと更新します。このため「セキュリティ修正のたびに数 MB も
> ダウンロードするのは、ダイアルアップ接続のユーザーには苦痛だ」とい
> う意見も多く、とくに Mozilla 1.7.6 => 1.7.7 と Firefox 1.0.2 => 1.0.3
> は日にちが近いこともあり、多くの苦情が寄せられました。
> そこで Mozilla Foundation は、今回の修正に "fix the root problem"
> (根本問題の修正)を追加して、製品寿命を長くする決断をしたもようで
> す。いきさつは adot's notblog* "another shot at 1.0.3"
> (http://weblogs.mozillazine.org/asa/archives/007898.html) 参照。
> しかし、この「根本問題の修正」はいわば「仕様上のぜい弱性の修正」で
> もあるため、一部の「拡張機能」が動作しなくなるなどのトレードオフが
> 生じています。
0318デフォルトの名無しさん
2005/04/10(日) 03:33:55XULでポトペタ環境ってまだないの?そういうのがあると
手軽なGUI作成ツールになるんだけど
0319デフォルトの名無しさん
2005/04/10(日) 06:32:15ttp://www.mozdev.org/categories/xul.html
0320デフォルトの名無しさん
2005/04/10(日) 10:52:41XULDでテスト中
chrome://xuld/content/visualformmaker/formmake.xul
ただしMozArtを元にしてるのでそっちの許可が下りない限りは(ry
#tree表示がないときついな
0322デフォルトの名無しさん
2005/04/10(日) 12:41:42まともに動くのが無い・・・orz
0323デフォルトの名無しさん
2005/04/11(月) 01:47:210324デフォルトの名無しさん
2005/04/11(月) 14:40:19ブラウザ自体XUL+JavaScriptで記述されてますから。
0325デフォルトの名無しさん
2005/04/11(月) 15:18:16使ったことないから知らないけど。
0326デフォルトの名無しさん
NGNGXULRunner
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/
0327デフォルトの名無しさん
2005/04/11(月) 22:44:25にあるやつでちょっといじってみるとか
0328デフォルトの名無しさん
2005/04/11(月) 23:52:09できます。
Firefox内でも、「ブックマークの管理」ダイアログやDOMインスペクタ、
設定ダイアログ、拡張機能の管理ダイアログなどが
「ブラウザの外に窓開いて独立したアプリを作」った例と言えます。
0329デフォルトの名無しさん
2005/04/12(火) 00:04:050330デフォルトの名無しさん
2005/04/13(水) 19:27:52使いまわしだとかバージョンによるバッティングとかどんな感じになってるの?
ttp://nazodane.hp.infoseek.co.jp/xpcom/xpcom.xhtml
0331デフォルトの名無しさん
2005/04/14(木) 04:01:22adblock とか livehttpheaders とか結構使ってるよ。
■ このスレッドは過去ログ倉庫に格納されています