Mozillaでプログラミング(XUL) その2at TECH
Mozillaでプログラミング(XUL) その2 - 暇つぶし2ch798:デフォルトの名無しさん
06/03/29 20:05:37
こんなのもあるんよ
URLリンク(xulplanet.mozdev.org)

799:デフォルトの名無しさん
06/03/30 12:59:52
extension の変数/関数のスコープというか名前空間というか
がまだよくわからないんですが…。
オーバーレイしない .xul の場合は、そこで名前空間が閉じていて、
そこで読み込んだ js 以外のものとの名前衝突は起こらないと考えてよいでしょうか?
また、もちろん変数領域などは .xul を開いた数だけ存在するんですよね?

で、オーバーレイしてる場合は、オーバーレイした対象の XUL の空間(window)上に変数
などが定義されるので、すでに定義されている変数や関数との衝突が起こりうるので、
オーバーレイする対象がロードしている js 実装を理解するか、prefix を使うかしないと
いけないってことでよいでしょうか?

オーバーレイしてない場合でも、xul から自作以外の js をロードしている場合は
同様に気を使わないといけないですよね?
.js 内のグローバル変数は怖いな…。
うかつにロードすると別インスタンスになるんですよね…?
# たとえば、非オーバレイ xul から browser.js の関数が呼びたいといって
# script src="chrome://browser/content/browser.js"
# とかやるのは危険ってことですよね?

800:デフォルトの名無しさん
06/03/30 21:25:20
自分はオーバーレイするときは
変数とか関数の頭にその拡張の名前を付けるか
オブジェクト指向っぽくやる

801:デフォルトの名無しさん
06/03/30 21:26:31
>799
JavaScriptのことを勉強すればその辺の事はよくわかると思うけど、
まあ大体あなたの言ってる通りです。


802:デフォルトの名無しさん
06/03/30 22:14:29
> 非オーバレイ xul から browser.js の関数が呼びたい
こんなケースあるか?
window.openerやnsIWindowMediatorのgetMostRecentWindow("navigator:browser")でbrowser.xulを探すべきじゃん?

803:デフォルトの名無しさん
06/03/31 00:06:12
何言ってるかさっぱりわかんね

804:デフォルトの名無しさん
06/03/31 09:20:19
俺もわかんね

805:デフォルトの名無しさん
06/03/31 17:26:46
あるサイトに接続するパスワードをユーザーに入力させて、何度もログインさせるのを
軽減するためにパスワードを保存しておくとしたら、どういう風にすれば安全なんでしょうか。
jsではプライベート変数を持てないようだし、悪意を持ったプログラムがパスワードを
抜こうとした場合、どういう風にすれば防げるのか悩んでます。

806:デフォルトの名無しさん
06/03/31 17:30:12
そんなことしようと思うのが間違ってるんじゃね?

807:デフォルトの名無しさん
06/03/31 18:47:12
>>805

最善の方法と言えるか分からないけど、

ユーザが正しいパスワードを入力したら、
有効期限のあるIDをサーバーサイドのプログラムから、
クライアントに発行したらいいと思うよ。

たとえばブラウザを閉じたら破棄されるように
ID(クッキーのこと)を発行すれば、
悪意を持ったプログラムによる
被害も少なく済むと思う。

808:デフォルトの名無しさん
06/03/31 22:32:18
最善の方法は保存しないことだ

809:デフォルトの名無しさん
06/03/32 00:59:36
最善の方法はパソコンを使わないことだ

810:デフォルトの名無しさん
06/03/32 18:20:26
質問です。

window.addEventListener("load", listner, true);
でページ読み込み完了時にlistnerの処理を行いたいのですが、どうもこれだとレンダリング
まで待たないらしく、一瞬でlistnerの処理を行ってしまいます。
レンダリングまで待機するにはどうすればいいんでしょうか?

811:デフォルトの名無しさん
06/03/32 19:12:48
具体的に何をしたいのかにもよると思うけど

function listener(aEvent) {
if (!(なんか条件)) {
window.setTimeout(arguments.callee, 100, aEvent);
return;
}
本来の処理
}

とかそんな感じ?

812:810
06/03/32 20:02:57
ええと、特定URLの?id=というリクエスト変数を1ずつインクリメントしながらアクセス
していきたいんですが、

for(i=1; i <= maxUserID; i++)
{
jumpURL = 'URLリンク(example.com)'+i;
window._content.document.location=jumpURL;

contentArea.addEventListener('load', listener, false);
}

function listener()
{
contentArea.removeEventListener('load', listener, false);
}

これだと目にもとまらぬ早さで次々とページが切り替わっていってしまい、ほぼDOS攻撃
状態になってしまいます。

んー、なんかもしかして俺、とんでもない勘違いしてる?



813:デフォルトの名無しさん
06/03/32 20:47:04
forループでやれば当然そうなる罠。
読み込み終わった時点で次のリクエストを発行しないと。

var base = 'URLリンク(example.com)';
var currentUserID = 1;

function listener() {
window._content.document.location = base+currentUserID;
currentUserID++;

if (currentUserID > maxUserID) contentArea.removeEventListener('load', listener, false);
}

contentArea.addEventListener('load', listener, false);


814:デフォルトの名無しさん
06/03/32 21:13:28
こんなんやってみましたが駄目でした……。
ページが読み込まれないです。

function connect(maxUserID)
{
var contentArea = document.getElementById("appcontent");

var base = 'URLリンク(example.com)';
var currentUserID = 1;

contentArea.addEventListener('load', listener, true);
}

function listener()
{
currentUserID++;
window._content.document.location = base + currentUserID;

if(currentUserID > maxUserID)
{
contentArea.removeEventListener("load", listener, true);
alert('complete!');
}
}


815:デフォルトの名無しさん
06/03/32 21:20:32
あ、>>814>>810です。すいません。

816:デフォルトの名無しさん
06/03/32 22:07:26
変数のスコープとかJavaScriptの勉強をするといいと思うよ。

function connect(maxUserID)
{
var contentArea = document.getElementById("appcontent");

var base = 'URLリンク(example.com)';
var currentUserID = 1;

var listener = function()
{
currentUserID++;
window._content.document.location = base + currentUserID;

if(currentUserID > maxUserID)
{
contentArea.removeEventListener("load", listener, true);
alert('complete!');
}
}

contentArea.addEventListener('load', listener, true);
}



817:デフォルトの名無しさん
06/03/32 22:09:50
最後の部分、

contentArea.addEventListener('load', listener, true);
listener();
}

だった。
最初の1回は自分で読み込まないといかんね。すまん。


818:810
06/03/32 22:27:25
あ、そういうことか、お恥ずかしい……
できました。どうもありがとうございます。

819:デフォルトの名無しさん
06/04/02 05:12:31
やっとxulplanetが復活したか・・・。長かった・・・。

820:デフォルトの名無しさん
06/04/02 06:26:31
何言ってるかさっぱりわかんね

821:デフォルトの名無しさん
06/04/02 17:59:43
めずらしくXULの話してるな

822:デフォルトの名無しさん
06/04/02 18:48:59
XULじゃなくてJavaScriptの話だと思う
XULってXMLベースのUI記述するやつのことでしょ?

823:デフォルトの名無しさん
06/04/02 20:28:46
readでテキストの読み出し
WriteTo関数でテキストの書き出しが出来るけど
Cのfile( *fp, "a" )
に相当するような、テキストファイルの「追記」とかできないかな…
なにかのログの保存の時、放置しているウチに記録が溜まってファイルサイズが10Mとか越えたとき怖いんだけど。

824:デフォルトの名無しさん
06/04/02 20:40:00
>>823
nsIFileOutputStream.init の ioFlags に PR_APPEND(0x10)
URLリンク(lxr.mozilla.org)

825:デフォルトの名無しさん
06/04/02 20:51:14
>>822
調べれ

826:デフォルトの名無しさん
06/04/02 22:21:52
>>802
なるほど。たとえば、証明書ダイアログを呼び出したい、とかです。
browser.xul の window インスタンスに対して呼べばよさそうですね。

>>799
自分の知ってる知識だと、グローバル変数は window インスタンスの変数だったかな。
要するにマルチウインドウが前提になっている部分においては
グローバルじゃないってことですね。

827:デフォルトの名無しさん
06/04/02 22:50:28
>>825
調べれってことは漏れの解釈が間違ってるということか?
XULPlanetのWhat is XUL?を読む限りは漏れの解釈で間違ってないはずだが

828:デフォルトの名無しさん
06/04/02 23:42:11
tooltipで改行を入れたいんですが\nを入れても改行できません!

829:デフォルトの名無しさん
06/04/02 23:56:54
>824
サンキュ、今から試すけど、ほぼ目処が立ったです
prio.hがなんたらとかxulPlanetのnsFileにあったけど、コレなんですね

830:デフォルトの名無しさん
06/04/07 00:41:32
bookmarks_history.sqliteの中身を覗きたいのですが、
sqlite.exeを使ってコマンドラインからsqlite bookmarks_history.sqliteとしても、それはデータベースではない、と怒られてしまいます。
誰か解決法をご存じないですか?

831:デフォルトの名無しさん
06/04/07 00:45:42
>>830
sqlite3.exeのほうで

832:デフォルトの名無しさん
06/04/17 14:20:41
Creating XPCOM Componentsを読み終わったんで少しいじり始めた所
なんだけど、一つ質問させてくれ。
MOZILLA_STRICT_APIをプリプロセッサで定義するように書いてあるよね?
これをやるとnsCOMPtr.hなしじゃnsISupportsUtils.hが読み飛ばされてしまって
NS_DECL_ISUPPORTSが使えなくなってしまうような気がするんだ。
サンプルのWeblockだと全部一つのソースにまとめて書いてあるから
問題ないんだろうけど、これって何とかならないのかな?
「#ifndef MOZILLA_STRICT_API」があるヘッダーを使うときだけ、その前後で
定義して解除するようにするのが正解なんだろうか?

833:デフォルトの名無しさん
06/04/18 12:21:46
nsCOMPtr.hを外すなら、nsISupportsUtils.hなんていらんだろう。

そもそも、サポート系マクロは正式な"API"じゃない、ってことなんだから。
まあ、読みやすいのは確かだが。

私自身はマクロ派だけど、自分で書くソース(=Mozillaのソースに入ってない部分)は
その手のマクロを使うべきじゃない、っていう意見もあって、
XPCOMのドキュメントも一部そういう論調で書かれている。

834:デフォルトの名無しさん
06/04/18 18:35:13
FirefoxでXMLRPCを使う時って、どうすればいいですか?

835:デフォルトの名無しさん
06/04/18 21:50:11
>>833
そうだったのか。楽すんなって言われても結構辛いなぁ。
実装クラスをヘッダーとソースに別けて書くときに、メンバにnsCOMPtrが無いのに
nsCOMPtr.hをヘッダーでインクルードしないといけないのが気持ち悪くてしょうがない。

今WebLock作ってるんだけど、SDKにnsIContentPolicy.hが無いorz
ググルさんに聞いたらlxrからidlだけ引っ張ってきてxpidlでヘッダーを
作ってる人がいたようだけれど、Firefox1.07ビルドした時に出来た
/mozilla/dist/include/content/nsIContentPolicy.hを
使ってしまっていいのかな?

836:デフォルトの名無しさん
06/04/18 23:23:56
>>835
それは、悩み方がおかしい。

nsISupportsUtils.hの中身を使うなら、
#include "nsCOMPtr.h"
とせずに、
#include "nsISupportsUtils.h"
にすればいいんじゃないかな。

厳密にいうとAPIじゃないというココロを理解していたら、
あとは堂々と使うだけ、でしょ?
現に必要なんだから、紛らわしくもなんともないし。

837:デフォルトの名無しさん
06/04/18 23:33:17
> nsIContentPolicy.h

現行は1.0.xのころと全く違うテーブル管理やってるから、
ヘッダファイル自体がビルド時に弾かれるけど、
同じバージョンのSDKとソースならOK。

そもそも、Gecko SDKってビルド時に出来たファイルから、
仕様が固まってる部分を寄せ集めただけだから。

838:デフォルトの名無しさん
06/04/18 23:46:30
>>834

Components.classes['@mozilla.org/xml-rpc/client;1']
.createInstance(Components.interfaces.nsIXmlRpcClient);
だな。

あとは、
URLリンク(www.xulplanet.com)
を見ながらガシガシやってればいい。

急に活発になってきて、なんだか嬉しいなぁ。

839:デフォルトの名無しさん
06/04/19 00:23:56
>>836
目からうろこ。nsISupportsUtils.hって勝手に使ってよかったのか。
そこらへんのさじ具合から既にわからなかったよ。サンクス。

>>837
んなアバウトな代物だったのか・・・

840:デフォルトの名無しさん
06/04/19 00:53:27
余談だが、メンテナ不在で、Gecko SDKリリースの最新版は2年近くストップしたままなんだよ、今。

URLリンク(bugzilla.mozilla.org)

技術的にはなんら難しくなくても…orz

841:デフォルトの名無しさん
06/04/19 01:02:31
ソースからビルドすればええんじゃね?

842:デフォルトの名無しさん
06/04/19 01:05:08
>>841
自分はそれでいいが、人に説明する時困る。

843:デフォルトの名無しさん
06/04/19 01:19:24
>>834>>838
1.5 系列だとレスポンスが取得できないことがあるかも
URLリンク(bugzilla.mozilla.org)
trunk だとこれが入ったんで大丈夫だが

components/nsXmlRpcClient.js を URLリンク(mozblog.mozdev.org)
と入れ替えると 1.0.x のときははうまくいった。

>>840
URLリンク(benjamin.smedbergs.us)
これが進んでくれると嬉しいんだけど、bs 次第かな?


844:デフォルトの名無しさん
06/04/21 00:38:17
久々に弄ろうかと思ってググってみたら、
「XULPlanet 日本語版にようこそ」とか出てきて、和訳されたのかっ! と狂喜乱舞した。

数秒間だけの夢だった orz

845:デフォルトの名無しさん
06/04/21 00:52:20
ぶっちゃけ和訳イラネ。
英語でもきちんと整備されている方が良い。

846:デフォルトの名無しさん
06/04/21 02:59:54
和訳する人と本家に原文を上げる人は、
ほとんど別リソースだろうから関係なかろう。

847:デフォルトの名無しさん
06/04/22 11:40:12
Fx1.5.0.2をビルドしてもgecko-sdk-hoge.zipが出来ないのってデフォ?
/dist/gecko-sdk/もできないし。/dist/sdk/を使っていいのかな?
1.07の時は両方勝手に出来た記憶があるんだけどなぁ。

848:デフォルトの名無しさん
06/04/22 11:47:45
連投スマソ。Fxのzipパッケージも
Stripping package directory...
でエラーになって作れないOTL。これのせいかな。

849:デフォルトの名無しさん
06/04/22 14:58:07
みんなどうやって開発してるの?
メモ帳?

850:デフォルトの名無しさん
06/04/22 16:04:25
メモ帳ってUTF-8いけるんだっけ?

851:デフォルトの名無しさん
06/04/22 16:08:20
いける。

852:デフォルトの名無しさん
06/04/23 00:33:07
ぶっちゃけ置換が使えたらなんでもいい。

他の人と協力してやるなら、タブなし改行LFで揃えておくのが
Mozilla周辺のスタンダードだけど。

853:デフォルトの名無しさん
06/04/23 13:44:22
>>847
> /dist/sdk/
がgecko-sdkです。

854:デフォルトの名無しさん
06/04/23 14:42:00
dist/sdkは非凍結済みのも入ってるよ

855:デフォルトの名無しさん
06/05/05 18:18:06
C++ で XPCOM を作ろうと思っています。
しかし、xpidl でヘッダーファイルを作ろうとすると、
「問題が発生したため、xpidl.exe を終了します。」と言われてしまいます。
プロパティやメソッドを空にした場合や、タイプライブラリは問題なく作れます。
原因や解決法をご存知の方がいらっしゃいましたら教えてください。

856:デフォルトの名無しさん
06/05/05 22:06:22
manifestファイルがないとかそれ系じゃないの?

857:デフォルトの名無しさん
06/05/10 12:45:43
>>855
バージョンと、実際に使った引数を晒さないと、なんとも言えないな。

858:デフォルトの名無しさん
06/05/12 00:05:43
使った xpidl.exe は以下から落としたものです。
URLリンク(ftp.mozilla.org)

作った idl ファイルは以下の通りです。
#include "nsISupports.idl"

[scriptable, uuid(00A5D3B1-3129-44dc-91AB-D1753CFCD300)]
interface hoge : nsISupports
{
    long Add(in long a, in long b);
};

xpidl -m header -w -I "C:\gecko-sdk\idl" hoge.idl
と入力して実行するとエラーになります。

long Add(in long a, in long b);
がない場合や、-m typelib や -m doc はうまくいきます。


859:デフォルトの名無しさん
06/05/12 03:34:38
>>858
set GECKO_SDK=C:\gecko-sdk
%GECKO_SDK%\bin\xpidl -m header -w -I %GECKO_SDK%\idl hoge.idl
これで普通に作成されたよ。 SDKをダウンロードしなおしてみたら?

860:デフォルトの名無しさん
06/05/12 18:31:59
cacheにアクセスするにはどうしたらよいのでしょうか?

861:デフォルトの名無しさん
06/05/12 22:24:49
ソース読め

862:デフォルトの名無しさん
06/05/13 02:08:31
彼氏の作り方を教えてください。

863:デフォルトの名無しさん
06/05/13 04:59:04
Firefoxのプラグインを作りたいのですが、何を学べばよいのでしょうか?


864:デフォルトの名無しさん
06/05/13 09:20:26
>>863
>>679-681


865:デフォルトの名無しさん
06/05/18 11:30:51
>>862
俺にメール

866:デフォルトの名無しさん
06/05/18 23:32:13
>>865
失礼ですが、あなたはイケメンのアグリゲーションインタフェースでしょうか?

867:デフォルトの名無しさん
06/05/19 12:50:35
イケメンかどうかは知らんがアーキテクチャはシングルスレッドモデルです

868:デフォルトの名無しさん
06/05/20 23:20:03
Firefoxの拡張でメーラみたいな3ペインは実現できない?
bbs2chreaderでもやってないからできないのかな。

869:デフォルトの名無しさん
06/05/20 23:40:46
ScrapBookがサイドバー込みで3ペインを実現してるけど
そういう話じゃなくて?

870:デフォルトの名無しさん
06/05/21 01:20:59
サイドバー+ブラウザタブで3ペイン可能だよ
多分サイドバーに板ツリー、ブラウザタブ内に上下2分割でスレリストとスレの内容、ということを想定しているんだろうけど、個人的にはいらないや。

871:デフォルトの名無しさん
06/05/21 03:29:00
ペインの数の増減や内容の割り当てを変更などが、拡張で可能なのだろうか。
とりあえず、Ez Sidebar が別ウィンドウに分離してるけど。

>>868
ちと話はズレるけど、RSS Reader Panel が、そういった計画を持ってた記憶があるから、
flyson 氏も、気にはしてるのではないのだろうか。
ちなみに、別の物で3ペインにしている 2ch ブラウザのスライドみたいのを見た記憶もある。

872:デフォルトの名無しさん
06/05/21 07:34:11
3ペインなんてbbs2ch:board-3pein:URLリンク(*)に対応すれば簡単なはず。
ただタブ関係が拡張との兼ね合いでややこしい事になるのでMoz2chの方は随分苦労してたっぽいね。

873:f ◆8ewPbovXwQ
06/05/21 13:27:27
3ペインは、コンテントホルダー参考にすればできるよ。
URLリンク(piro.sakura.ne.jp)

bbs2chreader や RSS Reader Panel でやらないのは、3ペインて画面狭くなるし
ごちゃごちゃするので嫌いだから。
3ペイン式の 2chブラウザ使ってる人ってあの小さなペインでスレみてるの?

874:デフォルトの名無しさん
06/05/21 14:17:36
>>873
定期巡回で過疎スレばかり見るような場合だと、1スレあたり多くても数レスしか見ないから狭くてもいい。
次々に別のスレッドを開くからスレッド一覧の方にはすぐにアクセスしたい。

875:デフォルトの名無しさん
06/05/21 16:15:46
3ペインは要らない。むしろサイドバーにスレ一覧の方がいい

876:デフォルトの名無しさん
06/05/21 17:53:48
専用スレでやれ

877:デフォルトの名無しさん
06/05/22 04:35:54
navi2ch みたく、ワンストロークで一瞬でペイン数が切り替えられれば最高だけど。

878:デフォルトの名無しさん
06/06/04 10:11:14
XAML を Firefox や Safari など異なるプラットフォームでも動かす WPF/E のデモを今更見た。
XULはGeckoでしか動かないし、IEやSafariやOperaで動かす見通しも全く立ってない(はず)のに、
XAMLはもうIE5.5/Fx/Opera/Safariでの動作を実現してる。

しかもオーサリングツールまで完備。それが3月の時点でデモできてる。
圧倒的じゃないか、Microsoftの技術力と体力は!

XUL終わったね。
かぶる部分はあれどどこかしらお互いカバーしきれない部分はあってそこで並立してくのかな?
と思ってたけど、XAMLは完全にXULを包含したね。

879:デフォルトの名無しさん
06/06/04 16:00:07
へえ。そう。

880:デフォルトの名無しさん
06/06/04 18:33:31
それはよかったね。

881:デフォルトの名無しさん
06/06/04 18:54:15
XAMLてLinuxで動いたっけ?


882:デフォルトの名無しさん
06/06/04 19:25:14
うん。

883:デフォルトの名無しさん
06/06/04 19:25:38
一応、Linuxでもプラグインという形でサポートされる模様。
URLリンク(www.2fc.net)
MS純正というけど、Monoとか使うんじゃないのかな。

884:デフォルトの名無しさん
06/06/04 23:27:17
>878
転載元をちゃんと書けよ、と釣られてみる。

885:デフォルトの名無しさん
06/06/05 19:25:40
結論:XULオワタ

886:デフォルトの名無しさん
06/06/05 19:37:46
なんでいまさらXAMLの話で盛り上がってんの?

887:デフォルトの名無しさん
06/06/05 20:38:49
URLリンク(japan.cnet.com)
> Wallent氏によると、MicrosoftはLinuxに対応するWPF/Eは用意しないという。

888:デフォルトの名無しさん
06/06/06 00:00:22
結論:Linuxオワタ

889:デフォルトの名無しさん
06/06/06 00:13:15
OpenGL叩きが出来なくなった糞窓厨が暴れてるんだろ。
こういうのはスルーしとけ。

890:デフォルトの名無しさん
06/06/07 20:10:40
proxybarをProgram FilesではなくApplication Data配下にインストールしたいんだがどうすればいい?
作者、見てたら直してくれ!!

URLリンク(toshiki.s22.xrea.com)

891:デフォルトの名無しさん
06/06/08 12:56:39
>>890
こんなとこに書かないでメールしろよ…

892:デフォルトの名無しさん
06/06/08 19:27:56
>>889
何故そこでOpenGL?

893:デフォルトの名無しさん
06/06/08 21:34:13
Google作の拡張を覗いてみるとjsのソースがやたら見づらくなってるんだけど、わざとなのかな。

894:デフォルトの名無しさん
06/06/09 01:15:22
見てないが、Googleが書くjavascriptってのは一般にロードされる回数が
ハンパじゃないから帯域節約のためじゃないの? HTMLとかもそうだし。
そのコード or 流儀をそのまま拡張にも使っているだけとかじゃないかな。
みづらいだけなら適当な整形かませばいいじゃん。
わざとやるなら暗号化した文字列を復号してevalくらいやるんじゃね。遅そうだけど。


895:デフォルトの名無しさん
06/06/14 19:53:29
FirefoxのIrvine拡張をいじって、HTMLの中のfilelistという名前のついたformにかかれてる
ファイル名をIrvineに送ろうと思ってるんだけれども、

var fn = document.popupNode.ownerDocument.filelist;

とやっても、このformの要素を読み出せないのはなんででしょう?
Javascript Debuggerからは、 irvine.jsにブレークポイント張って、止まったところで
document.popupNode.ownerDocument.filelistをヲチするとばっちりみえるんだけども・・・


896:デフォルトの名無しさん
06/06/17 19:04:23
popupNodeがnullなんじゃね?

897:デフォルトの名無しさん
06/06/17 22:41:38
ファイルを削除せずにOSのごみ箱へ送ることはできますか?

898:デフォルトの名無しさん
06/06/21 14:41:23
くだらない電卓とか、しょぼいアプリしか作れないのに
わざわざプログラムする意味あるの?

899:デフォルトの名無しさん
06/06/21 17:58:53
( ´∀`)σ)∀`)

900:デフォルトの名無しさん
06/06/21 21:37:55
>>898

だね。キミの実力だとね。

901:デフォルトの名無しさん
06/07/04 22:24:17
OpenSUSE10.1をインストールしてびっくりしたんだが、
YaSTって、XULRunner入ってるんだよね…

で、何がすごいかって、mozilla.orgがリリースしていない1.8.0.x系の
Gecko SDKが半自動でインストールできる…
しかも、インターフェイスはfrozenなやつだけじゃなくて、1.8.0.x
(今なら1.8.0.4)に使ってる奴が全て使用可能。

今、Mozilla系を開発するのに、で最も恵まれてる環境はSUSEで間違いないな。
Debianとの落差がすごい…。

902:デフォルトの名無しさん
06/07/08 02:01:29
URLリンク(hadakadenkyu.flnet.org)
センスタソがカミングアウトしてるな

903:デフォルトの名無しさん
06/07/08 18:41:34
自作したXPCOMコンポーネントから呼び出し元の
Javascript中にある関数を呼び出す方法ってある?
言い換えるならコールバック関数を登録するようなモデルの実装法を聞きたい。

904:デフォルトの名無しさん
06/07/08 23:44:43
イベントリスナの登録とかその辺の処理をパクってみてはどうだろう

905:デフォルトの名無しさん
06/07/09 08:24:34
>>903
適当なリスナインターフェイスを XPIDL で作って JavaScript 側で実装したらどう?
XPCOM も JavaScript なら wrappedJSObject を使うのもいいかもね。

906:デフォルトの名無しさん
06/07/10 23:25:50
>>905
よほど特別な事情がある場合以外はnsIObserverにすべき。

907:デフォルトの名無しさん
06/07/15 10:03:40
遅くなってしまった。
>>904
あれ追跡しようもんなら6ヶ月計画になる悪寒が・・・

>>905-906
まだあまり試せてないけどそこら辺のキーワードでググったら
それっぽいことが書いてあったよ。休みに突入したらやってみる。

908:デフォルトの名無しさん
06/07/19 18:31:09
XULの開発環境作ったら寄付する。

909:デフォルトの名無しさん
06/07/20 18:46:35
>>908
使いやすいIDE最初から作るの大変だよ

むしろeclipseでXULプラグイン(>>611,612,632)入れてみてwikiに使い方書くとか
URLリンク(eclipsewiki.net)

開発意欲モリモリで「それじゃ満足できねー」ならnetbeans用XULプラグイン作るとか

910:デフォルトの名無しさん
06/07/20 19:41:09
なんでjava系に話がいくのかな。
どうせならXULRunnerアプリにすればいいのに。

いや、言ってみただけだよ。
本気にすんな。

911:デフォルトの名無しさん
06/07/20 19:49:56
XULアプリに特化したNvuみたいなのが欲しいのか?

912:デフォルトの名無しさん
06/07/20 23:52:49
XULやJavaScriptだけなら普通のエディタでも十分作れる。
でも、XBLはちょっと苦しいな。

913:デフォルトの名無しさん
06/07/21 00:08:28
>>909 thx.正直Ctrl+Fの力が足りなかった。すまん。

914:デフォルトの名無しさん
06/07/21 06:23:29
このスレに強いCtrl+Fを感じる

915:デフォルトの名無しさん
06/07/21 08:50:27
そのような発言に畏怖を覚える

916:デフォルトの名無しさん
06/07/21 15:33:23
if覚えたー!

917:デフォルトの名無しさん
06/07/21 16:26:17
>>913さんのCtrl+Fが消えた!!

918:デフォルトの名無しさん
06/08/20 03:43:27
nsIConsoleServiceでJSコンソールの「エラー」にメッセージを出力させることはできませんか?

919:デフォルトの名無しさん
06/08/20 08:27:44
これは?
Components.classes["@mozilla.org/consoleservice;1"]
.getService(Components.interfaces.nsIConsoleService)
.logStringMessage("メッセージ");

920:デフォルトの名無しさん
06/08/20 11:30:17
それですと、メッセージのタブに出ますよね。
エラーのタブに出したいのです。

921:デフォルトの名無しさん
06/08/20 11:39:46
nsIScriptErrorも使うといいらしい
URLリンク(developer.mozilla.org)

922:デフォルトの名無しさん
06/08/20 22:07:36
>>921
その方法でできました!
ありがとうございました。

923:デフォルトの名無しさん
06/08/26 05:06:32
URLリンク(www.axissoft.co.jp)
こんな感じで、FEP(IME)を制御したいんだけど、
なんとかなんないの?

ようは、ある特定の入力欄にフォーカスをあわせると、
強制的にFEPがONになって、しかも、全角ひらがなオンリーになっている、、
みたいな機能。

逆に、自作するならするで、なんか、参考になるExtensionある?


924:デフォルトの名無しさん
06/08/27 15:25:17
つーかサンプルとかによく出てくるgBrowserとかmTabとかが何なのか良く分かりません!

ググってもGoogle製ブラウザのウワサしか出てこないし…

925:924
06/08/27 17:01:23
自己解決しました。


つーかみんなドキュメントないのにすごいなあ。

926:デフォルトの名無しさん
06/08/27 17:03:08
ソースコードがドキュメントです。

927:デフォルトの名無しさん
06/08/27 17:45:31
>>923
WindowsならC++XPCOMからWinAPI叩いてやればできるんじゃね

928:デフォルトの名無しさん
06/08/27 21:48:13
Webアプリで、HTMLのかわりにXULを使おうと思っているんですけど、
<form>や<input type="submit">のような感じでは使えず、
XmlHttpRequestを使うことになるのでしょうか。
XmlHttpRequestは便利なのですが、URLを切り替える方法がわからないので、
<form>や<input>のようには使えず、困っています。
なお<html:form>や<html:input>も使えるようですが、こうすると
HTMLと同じになってXULの利点がなくなるので、あくまでXULのままで
できる方法を教えてください。
よろしくお願いします。

929:デフォルトの名無しさん
06/08/29 05:26:57
>>928
そこでXFormsですよ!

930:デフォルトの名無しさん
06/08/29 13:25:08
<menuitem id="XXXX" label="YYYYYY" accesskey="W" oncommand="ZZZZZ()" image="chrome://ext-name/skin/rc.png" class="menuitem-iconic"/>
でメニューアイテムに画像が張られないんだけど、
パスが間違ってるのかなあ…

931:デフォルトの名無しさん
06/08/29 19:04:38
>>930
それは確かダメで、代わりにCSS使えばいけるんじゃない?

menuitem#XXXX {
  list-style-image: url(chrome://ext-name/skin/rc.png)
}


932:930
06/08/30 08:39:31
skinフォルダにcontents.rdf置いて、image属性をsrc属性に書き換えたら出来たです。
自己解決すまそ。

933:デフォルトの名無しさん
06/08/31 04:04:10
すいません、一日悩みとおしたので相談します。
任意のURLの子ウィンドウを、内容を書き換えた上で開きたいんですけど、

aWin = window.open('URLリンク(www.hoge.com)', '_blank', 'options');
aWin.addEventListener('load',aWin_rewrite, true);

としてもaWin_rewrite関数が呼び出されません。何故でしょうか。

(色々試しているとたまに呼ばれるんですが、再現性は低いのでよくわかりません)

934:デフォルトの名無しさん
06/08/31 21:28:15
XULではなくJavaScriptの質問スレへどうぞ。

935:デフォルトの名無しさん
06/09/03 13:03:38
ツールバーボタンがツールバー上に設置されてるかどうかの判別はどうすれば良いんでしょうか?
起動時に確認したいのですが・・・

936:デフォルトの名無しさん
06/09/03 18:29:03
>>935
ウィンドウのロード時にそのウィンドウについてdocument.getElementById("ボタンのID")を
チェックすりゃいいんじゃなかろうか。

937:デフォルトの名無しさん
06/09/03 19:26:33
自作のXPCOMをnew演算子でサクッとオブジェクト生成する方法ってありますか?

938:デフォルトの名無しさん
06/09/03 21:32:42
ラッパオブジェクトを作れば?

939:デフォルトの名無しさん
06/09/04 01:33:58
>>936

まさにその通りっすね・・・かなりテンパってた・・・

940:デフォルトの名無しさん
06/09/05 17:57:37
XPCOM使って,ソケット通信のクライアントをつくっています.
XULPLANETのコードをそのまま使って動作させたのですが,どうにも上手く動きません.
クライアントからサーバへのデータの送信は上手くいくのですが,
どうやらサーバからクライアントへのコールバックが上手くいってないようです.
誰か,解決法を知っていらっしゃる方がいましたら,ぜひ教えてください.

XULPLANET(ソケットのチュートリアル)~問題のコードはページの後半にあります.
URLリンク(www.xulplanet.com)

941:940
06/09/07 14:51:50
お騒がせしました.解決しました.
サーバ側でreadLineメソッドで読み込んいたのですが,
クライアント側で改行コードを入れておらず,反応していなかったようです.

942:923
06/09/08 17:04:06
>>927
亀レス失礼・・・。

その、
「C++XPCOMからWinAPI叩く」方法がわからんわけですよ。
さらに、この場合、INPUT Form に新しい属性を作り、
その属性が、XPCOMに伝わらないとだめなんですが、
そのあたりのコーディングとか。

グッドサンプル、プリーズ!。


943:デフォルトの名無しさん
06/09/10 18:52:18
>>942
開発環境は整っているのか?
びるずらを参考に VC++ 2005 Express Edition で
mozilla をビルドすれば、環境は整う。
話はそれからです。

944:デフォルトの名無しさん
06/09/10 20:08:15
え?MozillaってVC++依存なのか!

945:デフォルトの名無しさん
06/09/11 15:11:03
URLリンク(releases.mozilla.org)
gecko-sdk-win32-msvc-1.8.0.4.zip 12-Jul-2006 09:40

うーむ・・・まあ、以前よりはましだけども・・・

946:デフォルトの名無しさん
06/09/25 22:56:06
自分でビルドすれば

947:デフォルトの名無しさん
06/09/26 08:22:18
>>944
MinGWでもビルドできるはずだけどそれなりに苦労すると思う

948:デフォルトの名無しさん
06/10/02 21:19:43
ようやくFx1.5でWebLockできた・・・・・・
試行錯誤しているうちに知識が付いたんだか付かなかったんだかよくわからんね。

949:デフォルトの名無しさん
06/10/03 00:09:12
おめっとさん

950:デフォルトの名無しさん
06/10/18 00:06:42
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん

951:デフォルトの名無しさん
06/10/19 23:06:43
Cybozu Developer Network: XUL 調査報告 ~リマインダー開発~
URLリンク(cydn.cybozu.co.jp)

952:デフォルトの名無しさん
06/10/22 22:35:33
user_pref("capability.principal.myapp.id","URLリンク(www.example.com));
user_pref("capability.principal.myapp.granted","UniversalXPConnect");

こんな感じでローカルファイルではなくて外部のURLにXPConnectの特権を与えることはできないのでしょうか?

953:デフォルトの名無しさん
06/10/23 13:39:48
>952
これはどう?
URLリンク(piro.sakura.ne.jp)


954:デフォルトの名無しさん
06/10/23 21:58:21
2.0で全滅キター!

955:デフォルトの名無しさん
06/10/23 23:08:49
>>952
それ危険すぎ

956:デフォルトの名無しさん
06/10/23 23:39:21
>>953
おお、まさにそれでした。
>>955
危険だけど、それを承知でやる分にゃいいんじゃないかな。
拡張機能の危険性とかを知らずにポンポンインストールするほうがよっぽど危険かと。

957:デフォルトの名無しさん
06/10/24 01:10:41
世間には、ダウンロードしたexeを実行する奴も居る位だしな。

958:デフォルトの名無しさん
06/10/24 07:28:17
何億人もいるよ

959:デフォルトの名無しさん
06/10/24 22:32:43
>>957
それしなきゃ何もできん

960:デフォルトの名無しさん
06/10/28 17:01:03
あれ? event.button の値が取れないんですけど...
WinXP Firrefox2.0
警告: reference to undefined property e.button


961:デフォルトの名無しさん
06/10/30 17:45:31
イベントタイプは何?
マウス関係のイベントじゃなかったら取れないよ

962:デフォルトの名無しさん
06/10/30 21:00:47
なんか解ったような気がする
コンテキストメニューからだと event.button はセットされない
てことかな
やり始めたはいいけど解んないことだらけだ、くじけそう


963:デフォルトの名無しさん
06/10/30 21:10:39
ああ違った...
oncommand じゃダメで onclick ならOKてことか


964:デフォルトの名無しさん
06/11/07 20:26:26
「ブックマーク」みたいにメニューのボタン押したらツールが現れるのってどうやったらいいの?

965:デフォルトの名無しさん
06/11/10 05:04:51
popup

966:デフォルトの名無しさん
06/11/12 22:21:53
>>965
マージポイントは?
ゴメン俺教えて君だな。

967:デフォルトの名無しさん
06/11/16 06:08:07
XULで、Webアプリではなくスタンドアローンのアプリをつくたいと考えています。
application.xulという単体ファイルで、データを入力してCSVで保存するようなアプリケーションです。
で質問ですが、スタンドアローンのアプリの場合、ローカルファイルの読み書きはできますか。
できればC++とか使うのなしで。
ファイル選択ダイアログとかもあれば教えてください。

968:デフォルトの名無しさん
06/11/16 06:19:20
Firefoxができてることは大抵、JSだけでできるよ。
ファイルの読み書きもファイル選択も。
とりあえずXUL Planetのチュートリアルあたりから
実際に試してみてはどうかな。

969:デフォルトの名無しさん
06/11/16 20:29:02
>>967

URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org)

970:969
06/11/16 21:01:12
補足
XPCOM を示したのは、C++で書けといっているのではなく
チュートリアルで、XPCOM の呼び出し方の基本を覚えてから、

URLリンク(xulplanet.com)

あたりで、使えそうなインターフェイスを探すといいよ。ていう意味です。
念のため。

971:デフォルトの名無しさん
06/11/16 22:49:17
Mozillaってブラウザである同時に開発環境なんですねっ!
小生は今モーレツに感動していますっ!

972:デフォルトの名無しさん
06/11/16 23:14:39
コンパクト、カスタマイズ性を謳っているFirefoxですが
SeaMonkeyと比較するとFirefoxのほうがページの読み込みが遅いです。

ソースコードが複雑になっていたことや重量化していたMozillaを
きっかけとしてFirefoxが生まれたと記憶してますが
1.5も2.0もTrunkも新規プロファイルで試していますが
UIやページの速度が上がっているとは感じられません。
拡張やテーマの量は豊富だと思いますが
なぜきっかけであったSeamonkeyにパフォーマンスで負けてるんでしょうか・・・。

973:デフォルトの名無しさん
06/11/17 10:57:16
ここで言われても・・・

974:デフォルトの名無しさん
06/11/17 15:46:27
>>972 はあちこちに貼りましたが・・・。

975:デフォルトの名無しさん
06/11/18 00:06:32
XPCOMからchromeにアクセスできないものか。

976:デフォルトの名無しさん
06/11/18 11:52:35
>>974
マルチ氏ね

977:デフォルトの名無しさん
06/11/18 17:01:14
ワロタ

978:デフォルトの名無しさん
06/11/22 02:17:00
携帯風アプリをXULで実現するための構造を考えています。
簡単な例として、次の2つの画面を別々のxulでpageタグで
定義し、それをwindow内のbrowserでロードしています。

【画面1】
件名 [ textbox(readonly) ]
+------------------------+
| textbox(readonly)   |
|            |
|            |
+------------------------+

【画面2】
+------------------------+
|     件名     |
+------------------------+
| textbox        |
|            |
+------------------------+


979:978
06/11/22 02:19:14
画面1の件名のtextboxでのEnterキー入力で画面2に遷移
する場合は、C++コンポーネントのstatic変数を介して、
画面2のtextboxに文字列を設定することができました。
(もっといい方法があるかもしれませんが…)

次に、画面2のtextbox上でのEnterキー入力で、history.
back()で画面1に戻るようにしたいのですが、画面1の
textboxに反映させる方法が分かりません。

deckやwizardを使えば何とかなるかもしれませんが、実際の
画面遷移はより複雑なので、browserが適切なのではないかと
考えました。
適切なアドバイスをいただけると助かります。


980:デフォルトの名無しさん
06/11/22 02:34:05
1つのXULに両方の画面入れて、hidden属性切り替えとかは?

981:デフォルトの名無しさん
06/11/22 06:22:00
history.back()を使わずに、新規に画面1をロードすればいいじゃん
まかりなりにもページ間の値の受け渡しはできてるわけでしょ?
画面1→画面2ができて画面2→画面1ができない道理がない

982:デフォルトの名無しさん
06/11/22 18:49:04
Components.classes["@mozilla.org/observer-service;1"].
 getService(Components.interfaces.nsIObserverService).
  addObserver(this, "http-on-modify-request", false);
でfirefoxのhttpリクエストを取得しているんですけど、リクエストが来た際に
ホスト→IPの変換を行ってIPアドレスでの接続を行ってほしいプログラムを作成しましたが
うまく動かなかったので質問させてください。
----------------------------------------------------------------
 register: function() {
  this.observerService.addObserver(this, "http-on-modify-request", false);
 },
 observe: function(subject, topic, data) {
  if (topic == "http-on-modify-request") {
   subject.QueryInterface(Components.interfaces.nsIHttpChannel);
   this.request(subject);
  }
 },
 request: function(oHttp) {
  if(domainip[oHttp.URI.host]) {
   oHttp.URI.host = domainip[host]; //※
  }
 }
----------------------------------------------------------------
oHttp.URI.hostの値をIPアドレスに変更しても、実際の接続先がドメインのまま
接続していて困っています。
これをIPアドレスでの接続に変更したいのですがいい方法はないでしょうか?


983:sage
06/11/22 22:10:15
nsIChannelには
 r e a d o n l y attribute nsIURI URI;
って書いてあるじゃん。


984:978
06/11/23 02:24:07
アドバイスありがとうございます。

>>980
実際にはもっと多くの画面があるので、できれば
随時読み込みにしたかったのですが、やはりそう
なりますかね。

>>981
新規にロードすると、historyに追加されますし、
画面1を復元するための管理が複雑になってしまうと
考えました。

>>980 案に近いのですが、wizardを使う方向で
考えてみます。
というか、wizardpageのようにpageshowがあれば、
wizardを使わなくても実現できそうなんですが…


985:デフォルトの名無しさん
06/11/23 05:19:40
(^-^)

986:981
06/11/23 08:20:11
そもそもなんでそんなに煩雑になるの?
起動時に情報管理用のオブジェクトを作ればいいだけだと思う
get(key), set(key, value), clear()あたりのAPIがあればOKでそ?

987:978
06/11/23 23:39:33
>>986
最初に書いたtextboxに反映する方法さえあれば、履歴を戻るという発想は
自然ではありませんか?
それが無理だという前提であれば、おっしゃっていることは尤もだと思います。


988:986
06/11/24 05:13:48
無理じゃないかも知んないけれどWebアプリと同様に考えるなら
あまりお勧めじゃないんじゃないか?
単にブラウザにHTMLの代わりにXULを表示しているだけなんでしょ
履歴を戻した時にonloadイベントが起こるなら
そのタイミングでできるかもね

まあそれはそうと>>986のようなものをつくらなくても
XULのブラウザにはこの機能がついてるんだね
あとヒストリーも切ることができるみたいよ
つまり>>984で書いたような懸念は標準機能で解決できそうだが?

989:デフォルトの名無しさん
06/11/24 21:29:03
>988の言ってるのってこれかな
URLリンク(www.whatwg.org)

990:デフォルトの名無しさん
06/11/25 14:48:51


991:デフォルトの名無しさん
06/11/25 17:01:48
ところで次スレの名前ってこのままでいいよね。
テンプレは>>2にMDCとXULPlanetあたり入れとく?

992:デフォルトの名無しさん
06/11/26 21:44:37
いいと思うよ

993:デフォルトの名無しさん
06/11/27 02:12:11


994:デフォルトの名無しさん
06/11/27 02:58:54
ume

995:デフォルトの名無しさん
06/11/27 19:15:36
\e

996:デフォルトの名無しさん
06/11/27 20:01:39
立てました。

Mozillaでプログラミング(XUL) その3
スレリンク(tech板)

997:デフォルトの名無しさん
06/11/27 22:31:20
立てました。

Mozillaでプログラミング(XUL) その3
スレリンク(tech板)

998:デフォルトの名無しさん
06/11/27 22:31:54
立てました。

Mozillaでプログラミング(XUL) その3
スレリンク(tech板)

999:デフォルトの名無しさん
06/11/27 22:32:15
立てました。

Mozillaでプログラミング(XUL) その3
スレリンク(tech板)

1000:デフォルトの名無しさん
06/11/27 22:33:33
立てました。

Mozillaでプログラミング(XUL) その3
スレリンク(tech板)

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch