Z。
みなさん、overlayした拡張を作るときどのようにテストしてるんですか? Firefoxで、xul単体だけなら引数の-chromeで表示・テストできるんですけど overlayした拡張のテスト方法が分かりません。
>>7 ブラウザ(chrome://browser/content/browser.xul)にオーバーレイしたXULなら
毎回ブラウザを再起動してテストしなければならない。
もちろんできますよ。
>>13 それは、引数の-chromeをつけてFirefox本体を起動するんですか?
質問が多くてすいません
いや、そんな必要は無いです。 引数-chromeはあるクロムURLのXULを単体のウィンドウで開きたい時だけ使います。
>>15 そうだったんですかー。
じゃあoverlayしたxulを書いたら、普通に起動するだけでOKなんですね。
ありがとうございました。
>>16 ってやっぱりインストールしないとダメなんですね・・・
installed-chrome.txtを編集するだけじゃダメですか?
installed-chrome.txtを編集するのとinstallするのは全く同じ。 インストーラーが書き換えるか手で書き換えるかの違いだけ。 でも、firefoxの場合、フォルダをインストールする方が楽だと思う。
>>18 勉強になります。ありがとうございました。
だから、順番が逆なんだね。 インストールスクリプトを最初に書いて、 白紙のoverlayをとりあえずインストールするんだよ。 で、いろいろいじって完成したら、コピーをとってアンインストールして、 zipで固めてインストールテスト、公開、鋭いツッコミ、ぎゃあ。
開発用の環境とインストールテスト用の環境は分けといた方が楽だよ。 (当然プロファイルは分けて)
>>22 なるほど!!今まで馬鹿みたいに毎回再起動してたわ。
漏れは新しいウィンドウ開いて確認してる。
誰あ前スレを閲覧できておくように保存してくれる人など居ないものか?
>>16 をわかりやすく言うと、
chromeにjarファイルの代わりにフォルダをいれて、
install.rdfにjarファイルの代わりにフォルダ名を書いとけってことだ
まとめサイトの和訳チュートリアル見ながら見よう見真似で拡張の中身とか install.rdf install.jsを書いて試したんですが、いざインストールしても 再起動する時にエラーで正常にインストールされません。 エラー文にはcontent.rdfの位置指定が間違ってるとかあるんですが・・。
install.jsはとりあえずは不要では? また、content.rdfではなく、contents.rdfです。
質問です。firefoxの拡張を作ってるのですが ツリーのカラムヘッダを非表示にするにはどのようにすればよいのでしょうか? treecolにhideheaderを追加してもダメでした。
hidecolumnpicker="true"になってないとか?
>>37 ありがとうございます。とりあえずこんな感じで書いてるんですが、ダメでした・・orz
<tree flex="1">
<treecols>
<treecol id="test" hideheader="true" hidecolumnpicker="true" primary="true" flex="1" />
</treecols>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="test"/>
</treerow>
<treechildren>
<treeitem>
<treerow>
<treecell label="test1"/>
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</tree>
hidecolumnpickerはtreeの属性です。 <tree flex="1" hidecolumnpicker="true"> 以下略
treeにhidecolumnpicker="true"を書いたらいけました・・・
>>37 さんありがとうございました。
スレ汚しすまそ。
>>32 肝心なインストールの時はどうやるんだ・・・xpiに固めたら意味ないだろうし・・・
英語読めねー誰か解説してくりー
>>42 マジですか、でもそれじゃあ編集できないんじゃ・・?
あーなんとなく意味分かったかも。
そう、いじるのはプロファイルの中身だから、 上手い具合に解凍されてるわけだ。
>>45-46 とりあえずxpiに固めて試してみます。
お二人さんありがd
tinderstatusとか、xpiだけどインストールすると 解凍された状態になる。 確か、torisugari氏もget file sizeのnon-jarred版を公開してたはずだが、 404だね。
install.rdfのIDって適当に書いていいんですかね?
たまに適当に書いているというか拡張の名前を含めているのもみかけるが。
適当すぎ。
仕様上の要求はGUIDなので、Web上で公開するならGUIDを使うべき。 実際にはどんな文字列でも動くから、 自分のマシンだけで使う場合は適当でいい。
GUIDGenは大文字と小文字が混じってるのがなぁ。 MACアドレス使ってるからこっちがいいんだろうけど。
XPCOMで aIOService.newChannelFromURI(aURISpec).QueryInterface(Components.interfaces.nsIHttpChannel); とかやってるのを見たのですが、newChannelFromURIの返り値はnsIChannelなのにnsIHttpChannelで QueryInterfaceできるのは何故でしょうか。
>>60 うーん、それってあまり正確じゃないような。
継承してるのは確かだけどね。
あえて言うなら、「理由はない」な。
aURISpecのプロトコルがhttp[s]?じゃなかったら、
QueryInterfaceは失敗する。
こういう実装がごく自然だってことはわかってほしいが…
メソッドが返す値はドキュメントに書いてあるインタフェイスを 継承した別のインタフェイスを持っている可能性もあるってこと? メソッドが返す値が持っている可能性があるインタフェイスの一覧とかって どこ見たら分かりますか?
firefoxでタブを一覧表示しようとしてるのですが 現在開いてるタブをすべて取得するにはどのようにすればよいのでしょうか?
gBrowser.mTabContainer.childNodes
>>62 >メソッドが返す値はドキュメントに書いてあるインタフェイスを
>継承した別のインタフェイスを持っている可能性もあるってこと?
そうなるね。
でもそれは、継承している親インターフェイス以外でもおき得る。
インターフェイスっていうのは、余分についてる分には文句の付けようがない。
よく本体と手足に喩えられるられるが、
「握手したいから手を差し出せ」
って言われた時、そいつの足が八本あろうがキャタピラになってようが、
手がついていれば握手に支障はない。
逆にいうと、足がいくらたくさんあっても手がなければ握手はできないから、
インターフェイスをきっちり実装するのが重要なんだけどね。
インターフェイスは必要条件を記述するためのものだから、
実際に送りつけられるインスタンスの十分条件とは限らない、って感じだろうか。
足が八本も付いてるのに、パンチしかしないのはもったいないなー、
と感じた時のためのQueryInterfaceで、
「足があるならキックもやらせようか」ということになる。
継承した子クラスってのは、普通の手だと思ってたのが
実は超合金製だった、とかそんな感じだね。
知らなきゃ握手にしか使えないが、
知ってれば釘を打ったりいろいろ使えて便利になる、と。
JavaScriptの重たいループ処理をバックグラウンドで実行させる方法はありますでしょうか。 勘で以下のようにやりましたが、まったく処理が動きませんでした。 var runnable = { run : function(){ 重たい処理 } }; const CITHREAD = Components.interfaces.nsIThread; var thread = Components.classes['@mozilla.org/thread;1'].createInstance(CITHREAD); thread.init(runnable, 0, CITHREAD.PRIORITY_NORMAL, CITHREAD.SCOPE_GLOBAL, CITHREAD.STATE_JOINABLE);
>>66 なるほど。
>>59 のコードを書いた人はどうやって
aIOService.newChannelFromURI(aURISpec)の返り値が
Components.interfaces.nsIHttpChannelお持っていると
気付いたのでしょうか。
たまたまQueryInterfaceして分かったってこと?
内部の情報に詳しかったんじゃないの? 英語の方ならドキュメントも充実してるようだし・・・
xpcom warpped objectかどうかを判定する確実な方法が しりたいのですが、どうすればいいですか?
try-catch構文でQueryInterfaceしてみるのが一番早いのではないでしょうか。
>>70 instanceof 構文で出来るよ。
var channel = ioService.newChannel("
http://www.example.com/ ", null, null);
alert(channel instanceof Components.interfaces.nsIHttpChannel); // おそらく true
alert(channel instanceof Components.interfaces.nsIFTPChannel); // おそらく false
var channel = ioService.newChannel("
ftp://ftp.example.com/ ", null, null);
alert(channel instanceof Components.interfaces.nsIHttpChannel) // おそらく false
alert(channel instanceof Components.interfaces.nsIFTPChannel) // おそらく true
treeにアイテムを追加するにはどうすればいいの? タブはaddTabとかあるけど、treeがいまいち分からん。
>>71 >>72 ありがとうございます。
もうひとつ、nsIEnumerator,nsICollectionでは
アイテムの返り値は、nsISupportsですが
例えば、nsICollectionのなかに、複数の[spconnect wapped nsI*]を格納した時
どのように、QueryInterfaceすれば良いのでしょうか。
NO INTERFACEなどが、出てしまい、うまくいきません。おねがいします。
try{ support.QueryInterface(Components.interfaces.xxx); }catch(e){ if(e.name==" NO INTERFACE"}{ //インターフェイスがないとき } }
nsICollectionの中身が全部欲しいから、 GetElementAt(0)で、かってくる nsISupportsがもっている、interfacesのリストなどが わかるといいのですが。。
もしかして、appendChildとか使わないとダメですか?
俺だったらDOM使うけど他にも方法あると思うよ
>>73 createElementNSで要素を作ってappendChildしていくのも可能だけど
RDFデータソースからテンプレートで生成したほうがいい。
一応、nsIClassInfoっていう専用のインターフェイスがあるから、 それをもってるかどうかをまず確認した方がいいね。
>>79 その方法は、要素の入れ替わりが頻繁に起こるタイプのプログラムに向いてますかね?
そういうのを作ろうとしてるもので・・・
>>81 そうそう。動的なツリーを作る場合の定石。
要素の入れ替わりが一度でも起こるんならappendChild, removeChildなんてめんどくさくてやってられん。
>>82 おお、そうなんですか。ではその方法で行こうと思います。
binaryStreamをつかって読み書きしたいのですが ファイルをバイナリで読み込む方法はわかったけど、 nsILocalFileをつかわずにpythonでいうStringIOのような ものを使うにはどうすればいい? 下のようにすれば、できるかと思ったけど。 nsISimpleStreamListener.init(outputStream,observer) outputStream.write("hoge",4) とすると、かならず固まるか、落ちてしまいます。 正しい使い方を、おしえてください;
type="checkbox"にしたtoolbarbuttonやmenuitemで、oncommand時のcheckedプロパティが MozillaとFirefoxとで逆のようです。 現状ではしかたなくnsPreferencesからapp.idを取得してFirefoxの場合は…としてますが、 他にうまい解決方法はありませんか? そもそもなぜFirefoxはcheckedが逆になってしまうのか謎。 サンプルコード <toolbarbutton type="checkbox" oncommand="alert(this.checked);" /> こちらは問題無し <checkbox oncommand="alert(this.checked);" />
>>86 CSSが正しくプロパティを解釈出来てるんなら、
少なくともアトリビュートは正確、ってことになる。
alert((this.getAttribute("checked") == "true")? "Checked": "Not checked.");
でどうだろうか?
oncommandとチェックの発生順序かな 是はどうしようもないかと
oncommand="setTimeout(function(){alert(event.originalTarget.checked);}, 0);" としたらうまくいきました。 Firefoxではoncommandよりもcheckedが先に変更されるということか。
>>90 そうみたいだね。
DOM的に言えば、Semonkeyの方が正しい挙動だと思う。
BookmarkなどのRDFデータソースってどこに置かれてるんでしょう?
htmlに変換されて保存されてる 読み出すときはhtmlからrdfに変換されてる
94 :
デフォルトの名無しさん :04/12/12 22:37:51
それにしてもブックマークのHTMLってなんであんなに汚いんだろう
>>94 パーサが古いからだろうな。
どう考えてもソース公開以前のコードをそのまま使ってる。
Firefoxのタブのコンテキストメニューのオーバーレイってどんな感じでやればいいんでしょう?
スクリプトで動的に編集するしかないんじゃない?
mTabContainerのonclickを上書きするとか? 行儀悪・・・
>>99 popupshowingかpopupshownにイベントリスナーを追加したら?
ページがロードされるたびに、WebページのJavaScriptより先にスクリプトを 実行する方法はありますか? browserにaddEventListener('load')する方式だと遅すぎるようです。 TbEみたいにメソッド乗っ取りするしかないのでしょうか。
RDFデータソースの操作って難すぃね
>>102 オブジェクト指向じゃなく手続き型だからね
>>103 理論的な部分はともかく、実際に手でコードを書いて遊んでみたほうが
よくわかると思います。
>>104 個人的には究極のオブジェクト指向だと思う。
DOMが子供だましに思えるほど。
>>105 オブジェクト指向について分かってないだろ
例:
オブジェクト指向→
rdf=new 〜();
rdf.delete();
手続き型→
rdfutil=new 〜()
rdfutil.delete(rdf);
難すぃというか面倒くさいね
RDFはデータ構造。 オブジェクト指向はプログラミングの様式。 手続き型なのは、RDFを扱うためのMozillaの実装。
まあSQLでデータベースをいじるのに比べたら全然難しいよね
addEventListenerの第三引数のuseCaptureってのが意味不明なのですが、 これをtrueにするのとfalseにするのとではどう違ってくるのでしょうか?
>>112 ありがとうございます。
前スレをのぞいたら、具体例が。
なんとなくわかってきました。
902 :デフォルトの名無しさん :04/11/05 09:17:34
現在、Firefoxの拡張作成をちょこちょこ勉強しているのですが、
Tab,Windowの新規作成時のタイミングを得たいのですが、
試してみたaddEventListener("load",では"更新"にも反応してしまいます。
他に何か方法はありますでしょうか?
903 :デフォルトの名無しさん :04/11/05 15:07:29
>>902 window.addEventListener('load', listener, false)
最後のfalseがポイント
開いてるウィンドウをすべて取得したいのですが、RDFデータソース以外から取得できますか?
外部ファイルからテキストを一行づつ読み込むことってできますか? nsILineInputStream というのがありますが、の readLine() を呼び出すとクラッシュしてしまいます。
XULのウィンドウを最前面ではなく背面に表示したいのですが、 openDialog(URL, "", "alwaysLowered")ではもちろん常に背面に表示されてしまいます。 タスクバーを切り替えてフォーカスしたときや必要なときに最前面に出せるようにはできませんか? nsIWindowMediatorあたりをさぐってみたのですが、get/setZLevelといったメソッドはなぜか使えないようです。
>>117 Firefox 1.0 で nsILineInputStream は問題なくうごくよ。
ただ、readLine はすごく遅いから 全部読み込んで、String.split("\n")
したほうがいい。
当方Firefox1.0(Linux i686)で、やはりクラッシュするするのですが、
>>120 の事情もあるので結局 split("\n");を使うことにしました。ありがとうございます。
>やはりクラッシュする ぶっちゃけ、あんたの書き方が悪いんでしょ。 他人や機械のせいにするくらいなら、掲示板で質問しない方がいい。
むしろJavaScriptでクラッシュなんてどうやったらできるんだ
「あんたの書き方が悪い」で済ませられない重要なものかもしれないぞ
>>123 できる。俺もThunderbirdがクラッシュした。
@mozilla.org/messengercompose/quotingのQuoteMessage()に渡した
nsIStreamListenerで、onStartRequest()が呼ばれた後にonDataAvailable()が
呼ばれる代わりにクラッシュした。コールバックだと、自分のコードのどこが
まずいのかよく分からん。
ソースからデバッグビルドのThunderbirdを作って、Emacs + GDBで追いかけ
ようかと思ったけど、そうなるとXULの範疇越えてるし。
前から疑問に感じていたのですが、XPCOMインターフェースの接頭辞nsは何の略ですか?
ネットスケープじゃないの。
なぜmzじゃないんですか?
Netscape社が作ったからだろ。おまえの頭はカボチャか?
カボチャじゃありません。ウンコです。 |人 |___) |__)クスクス |∀・ )  ̄ ̄ ̄ ̄
>>128 mozITXTToHTMLConv や mozIJSSubScriptLoader とか moz から始まるのがあったりする。
任意のWindowのResourceを取得する方法はありますか? getWindowForResourceはあるのですが、その逆がありません。
>>131 あるにはあるけどかなりの少数派だね。
いまさらnsをmozに付け替えるわけにはいかないから、
nsの意味を捏造した方が早いと思う。
ネームスペースとか。
COMに全然関係ないな…
>>135 リソースというかgetWindowForResourceで使う引数が欲しいのです。
普通にwindowがあれば要らないんじゃない?
>>137 それが要るプログラムな訳でして・・
とりあえず
>>134 のURL先のサンプルソースで割り当てられてあるIDを
RDFデータソースから取得できたらいいのですが。
>>138 多分、かなりアホなことやってると思うよ。
とりあえず、
>>134 を読んでリソースの受け取り方がわからないようじゃ、
RDFとか口走るのはどうかと思う。
つーか、あなたは
>>115 でしょ?
データソース、本当に要るのか?
ウィンドウのリストがあれば満足なんじゃないのか?
このスレだけでもずいぶんいろんなプロジェクトが進んでるみたいだけど 完成したら晒してもらえるかな? たとえば以前あった、Googlebarの検索語を全角空白で区切っても ちゃんと動作するようにしたのなんかぜひ使ってみたいし、 このスレで出た質問がどう生かされたのか見てみたい。
最近このスレに感じの悪いやつが一人紛れ込んでるな。
>>139 はぁ、説明するのまんどくさいんでもういいです。
むしろ、情報を小出しにしてるやしの方がアレだと思う。 まあ、ムキにならずにタチの悪い質問はスルーした方がお互いの為ではあるな。
強制IDまだ~?と言ってみるテスト。
>>140 >いろんなプロジェクトが進んでるみたい
公開されているのがほとんどです。(ScrapBookとかMoz2chとか)
>Googlebarの検索語を全角空白で区切ってもちゃんと動作するようにしたの
是は簡単にできる気がします。
>>134 resourceという変数はDOMの(要素の)ノードが入っていますのでそれを入れればいいかと
というかgetWindowForResourceからノード返せといっているのか。 window.document.getElementsByTagName("*")でいいかと
>resourceという変数はDOMの(要素の)ノードが入っています そもそもこれが間違い
あ… 属性ノードの間違いorz スマソ
混沌としてきたなぁ。
もしDOMの話をしてるんだったら、属性じゃなくて、要素のID属性だから、
それでいいんだけど、多分、
>>132 のやりたいことは
コンテナからRDFResouceを直に取り出すことじゃないかな。
んでリファレンス見たら単にID渡せば良いだけという罠
とりあえず、
>>134 は勘違いをしている確立が高いと。
何をしたいかがわからないと答えようがないなぁ
皆さん、すいません。 IDを渡せばいいってのは分かるんですが、Window Mediatorデータソースから 直接getWindowForResourceの引数に使う値を取り出したいのです。
データソースってとこ良く分からんがWindow MediatorはXPCOMをインスタンス化しただけだから引数に使う値はない。 #ウインドウ一覧が欲しいという事なのかな #もうちょっと具体的にお願いします。
んでID付けたくない理由は?
というかRDFの奴が一通り使えるしRDFについて学ぶのが良いと思う。 でも単純なリストではないって事???
データソースから取り出すには、コンテナを初期化して、 Enumeratorを回すのが定石。 でも、ウィンドウのリストがほしいだけだったら、mediatorでも出来る上に どっちみちSimpleEnumeratorの説明をしなくちゃならんから、 遠回りしてるだけなんだよ。 だから、情報を小出しにすんな、って言われてるでしょ?
>>156 頼むから、getEnumeratorを使ってくれ。
RDFは、もうちょっと知識が身に付いたあとでも遅くないから。
いや、単純にウィンドウのリストを取得するだけなら分かりますし、できるんですが。 ていうか、説明が難しい上にスレも荒れるので、自力で解決したいと思います・・ 今後自分に対するレスはもう不要です、いやほんとに。
ところで、
>>132 さんが使おうとしているgetWindowForResourceって使えます?
Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getWindowForResource("window-1");
エラー: Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getWindowForResource is not a function
厨房もじらーさんってまだ生きてるのかな?(・∀・)
こんな事できたのか。。おれてきメモ。 var docroot = window.content.document.documentElement docroot.innerHTML += '<p id="hoge">hoge</p>' window.content.document.getElementById("hoge") //もうひとつ var doc = document.implementation.createDocument("","html",null) var range = doc.createRange(); range.selectNodeContents(doc.documentElement); range.collapse(true); var cf = range.createContextualFragment(htmlcontent) doc.documentElement.appendChild(cf) var serializer = new XMLSerializer(); var xml = serializer.serializeToString(doc); これで、htmlも簡単にxmlに変換できるのね。
テキストファイルの文字コードの自動認識する方法ってありますか?
ウィンドウにフォーカスがあるか調べるメソッドかなんかあります?
自己解決しますた。
自動認識はできないんじゃ? 確かflyson氏のページに日本語の文字コードを簡易的に識別する関数があったが…
>>173 他のプログラム言語で書かれた判定式を移植
#Mozilla内部にもあるはずだけどJSからは使えないはず
>>22 の拡張を入れたらフロントエンドからアンインストールしても「次回の起動時に削除されます」
とか書かれて再起動しても消えてくれない・・・・
とりあえず手動で消すにはどうしたらいいですかね
プロセスが残ってない? Winならタスクマネージャで調べてみて。
>>177 プロセスで殺しても無理でした。ついでにPCごと再起動しても無理です・・・
extension.rdfあたりを手動でいじればいいんじゃ?
nsIRequestObserverのonStopRequestで、statusCodeに2147500033という数値が返ってきました。 この数値の意味を知る方法はありますか?
それは、NS_ERROR_NOT_IMPLEMENTEDだな。 idlでは定義されてるんだが、実装を書かないとそうなる。
>>66 の例でいくと、「握手しようとしたら、空振り」エラーだ。
握手に失敗しても空振りとは言わんな むしろ空手形とかそんなんだろ
空手形もおかしい
ページ読み込み完了時に処理させたいのですが、どのようにしたらいいでしょうか? mTabBox.addEventListener("load", test, true); 現在このようにやってますが、これでは早すぎます。
>>185 mTabBox.addEventListener("load", test, false);
でいかがでしょうか? (
>>111-114 参照)
>>186 ありがとうございます。
それも試しましたが、それだとうまく"完了時"に取得できないようです。
他の方法があればよいのですが・・・
nsITreeViewを自分で実装したツリーで、setCellTextしてもすぐにはツリーセルのテキストが変わらず、 なぜかそのセルを選択状態にすると変更が反映されます。 これをどうにかすぐに反映させるようにできないでしょうか?
自己解決というか実装の仕方を変えたので質問を取り下げます。
firefoxの拡張機能で、インストール時に独自の設定ファイルを作る方法ってあります?
デフォルト設定を*.jsで定義したいという話なら、 だとしたら、しかるべきパスにしかるべきファイルを置いて *.xpiに含めればいいと思う。
>>191 defaults/preferences/*.js ではなくて、独自の「ファイル」の方法ってことです。
で、さっき気が付いたんだが、 *.xpi の中に setting.xml とか置いておけば、インストール時に
%ProfD%/extensions/{extension-uuid}/setting.xml
に展開されるから独自の設定ファイルを置けることがわかったので、解決しました。
が、これだとアップデート時にもsetting.xmlが上書きされてしまうという問題点がうまれてしまいました。
>>192 > defaults/preferences/*.js ではなくて、独自の「ファイル」の方法ってことです。
そういうポリシーになってないと思う。
>>192 xpiにあらかじめ設定ファイルを含めるのではなく、初回起動時に生成できればいいよね。
アップデート時は設定ファイルの存在を判定して、あればそのまま使うように。
nsIPrefServiceに任意のファイルに設定を出力する機能があったと思うけど、 これは特定のブランチ以下だけを吐くとかできるのかな? 無理なら、TbEみたいに自力で実装するしかないかと。
やっぱり起動するときに、設定ファイルを捜したり作ったりする処理が必要なのか…。 皆さん、ありがとうございました。
Mozillaのインクルードディレクトリ、 あちこちに散らばってるのですが全部手動で指定するのはダルイです。 皆さんどうやって対応しているのですか? #include "xpcom/xxxx.h" みたいにしてます?
拡張の多言語版の配布方法で困っています。 ある拡張の公式なバージョン(例えばen-USとja-JP)とは別にローカライズ版(例えばde-DE)が存在するとき、 ローカライズ版をインストールしたドイツ人のユーザが拡張の更新ボタンを使って公式バージョンの最新版へ アップデートすると、ロケールに食い違いが生じて赤字のXULエラーが出てしまうという問題があるようです。 このような場合、ローカライズ版を一度インストールした人は今後ずっとローカライズ版がアップデートされるのを 待つように注意を促すしかないのでしょうか?
それしかないと思う。現状のExtensionManagerでは対策のしようがないので。 あと、ローカライズ版作成者の人に ローカライズ版専用の自前の更新情報を提供してくれるよう 協力を呼びかけるくらいだろうか。
ありがとうございます。やはりそうですか…。 ローカライズ版作者にupdate.rdfを作ってもらうという方向でいきます。 しかし不要なトラブルを避けるためにいっそ自分で全ロケールを管理した方がマシのような気もしてきました。
それが妥当だと思うなあ。 > 自分で全部管理 手数は増えるけど。UNIXのソフトは普通そうだよね。 リリースが近くなったらアナウンスして翻訳してもらって。
XULのwikiに拡張の説明のローカライズの仕方書いてきた。(って言ってもコピペだけど)
#んで書いてみて、何か物凄い面倒なことしてるな>俺って思ったのは気のせい。
>>200 全部自分で管理、新たな文が必要になった所は英語で補完しとけば良いと思う。
XUL開発のために今までずっとnglayout.debug.disable_xul_cacheをtrueにしてたけど、 久々にfalseにしたらFirefoxが驚くほど軽快に。デバッグするときと普段とでいちいち値を 切り替えるのは面倒だけど。
HTMLの文字列をDOM treeに変換したいときは、どうするのがベストでしょうか。 空のHTMLDocumentを作って、innerHTMLに入れるのかと 思ったんだけど、document.implementation.createDocumentで作られるのは XMLDocument…。
DOMParserは?
>>205 DOMParserはXMLのパースしかできなかったと思われ。
>>208 toolkit.jarを書き変えれば確かに簡単だけど、
自分の拡張からだとXBLとかいうのを書くみたいでちょっと初心者には無理ですね。
来年がんばります。
>>209 勘違い?
#オーバーレイを使えば肝胆なのに
確かにタブのコンテクストメニューってidで一意に定められているわけじゃなく、 XBLで各タブごとに存在するという感じだから、例えばcontentAreaContextMenuにオーバーレイ するみたいに一筋縄ではいかない気がするな。
よく調べないで書き込んでスマソ。 #でもXBLもそんなに難しくない気がするけど…
>>211 XBLはCSSに入ってるから、オーバーレイっていうよりカスケーディングだな。
CSSはオーバーレイされてるんだけどね。
根本的な考え方は一緒、というかむしろカスケーディングの方が
なじみがあるだろう。
そのサンプルが古いからです。 >2002 年 3 月 16 日記。このページの更新は、もはや、ありません。 >後を継いで頂ける方がありましたら、ここでのこれまでの翻訳を、ご自分のサイトに移して、このサイトの翻訳が停止した後の差分を訳すなり、一から訳し直すなりの措置をお取り頂ければ幸いです。 >私の連絡は不要です。このページは、4 月末までに廃止されます。
現在の仕様では、旧treeウィジェットはなくなって、 その資料でoutlinerとなっているものがそのまま名称変更されて treeとして実装されています。
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Perl
>>219 Python と HSP を忘れてるぞ。
……って Ruby スレじゃないじゃん。ここ。
すいません、RDFとTemplateに絡んで質問なんですが、 <rdf:Description rdf:about="..."> <my:property rdf:parseType="Literal"><html:em>はろー</html:em>ぐっど<html:br />もーにんぐ</my:property> </rdf:Description> というふうにparseType="Literal"である目的語の値をそのままテンプレートに使うのにはどうしたらいいんでしょうか。 ためしに以下のようにやってみましたが、(&my;は名前空間URIに展開される) <rule> <conditions> ... <triple subject="..." predicate="&my;property" object="?object" /> </conditions> <action> <html:p uri="..."><textnode value="?object" /></html:p> </action> </rule> 以下のような結果になってしまいました。 <html:p>rdf:#$R1O4A1</html:p> ほしい結果は以下のとおりです。 <html:p><html:em>はろー</html:em>ぐっど<html:br />もーにんぐ</html:p> 何とかテンプレート関連要素を使ってやる方法はないのでしょうか? それともこういう場合はスクリプトで処理していかなくてはならないのでしょうか? # 関係ないけどXUL/Migemoはすごいですね。 # "parseType"で検索したら「パース型」まで引っかかりましたよ。
222 :
デフォルトの名無しさん :05/02/11 08:16:38
sidebarBox = document.getElementById("sidebar-box"); みたいな感じでGUIの部品への参照を取得してるみたいなのですが 引数として与えられる文字列と取得できる部品の対応表とメンバ一覧みたいのはありますか?
まずはbugzillaでvoteするべし
>>224 おおっ、ありがと。ってサポートされてないのね。残念。
仕方ないからテンプレート使わず単なるXMLとみなして
DOMでひとつずつ取り出すかXSLTで一気に変換するかします。
ちなみにBugzillaで探したら
Bug 33197 - no support for parseType="Resource|Literal"
https://bugzilla.mozilla.org/show_bug.cgi?id=33197 RESOLVED/FIXEDになってる!?
どうやらNC:parseType (意味的にはrdf:datatypeに相当?)が実装されたときに
FIXEDにされたらしいですが……どうなってるんでしょ?
どういった利点が?
>>230 GJ!
これで生成できるGUIDって正式なやつなんでしょうか?
RDFデータソースの操作で参考になる拡張は何ですか?
>>231 guidのwindowsでの正式な出し方はadvapi32.dllを使うのでどうしようもありません。
またunixではランダムデバイスを使っているようです。
ようはランダムであれば良い訳で別にMath.randomでも問題なさげと判断しました。(内部処理までは確認してません。)
>>233 でも、なるべく衝突しないようにしなきゃいけないわけで。
GUIDは全部をランダムに取るわけじゃないよ。 それなりに人によって使う領域が違ってくるように考えられている。 計算の仕方というのがあるのできちんとやるように。
あーデバイスから求めてる訳か。 JSの実装がどうなってるか確認してみます。
>>235 角度とか?
つか、偉そうなこと言うんだったらもうちっと具体的なこと言えばいいのに(笑)
ダメっぽいな… XPCOMあさってみます。
crypto.random();が実装されてないorz
>>237 DCE 1.1 RPC Specificationを読め。
>>240 uuidって仕様あったんだ
某所で聞いた時誰も答えてくれなかったorz
添付フォルダを使うようにしました。
これでwindows上では問題なし。
>>244 で?
>>244 そのツールって内部から呼べて、さらに値返ってくるの?ってことでしょ
>>245 手動の計算方法は*BSDのソース見たときに載ってた気がする
まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
あれって確かMACアドレス取ってるんだっけ?
# Windows系だけでOKなら、現行の仕様で問題無さそうだけど
windowsではvbsでScriptlet.Typelibを使うようにしたので問題ないです。 linuxでは/dev/urandomや/dev/randomを読み込むだけでよさげだけど環境が無いので対応は後回し。
>>246 > 手動の計算方法は*BSDのソース見たときに載ってた気がする
> まぁ計算方法は何とでもなるだろうけど、問題は機種固有数値の取得か
> あれって確かMACアドレス取ってるんだっけ?
そう。DCEのSpecの"UUID Format"ってとこに書いてある。
要するにMACアドレスが(建前としては)一意性を保証されてるってことと
時刻を利用して理論的には一意な数値を叩き出す。
MACアドレスが尽きたらどうするんだろうというのは昔から謎。
249 :
デフォルトの名無しさん :05/02/24 17:54:16
xul+javascriptでデータベースアプリケーションは作れマツか? その1は落ちていて読めていません。
252 :
sage :05/02/25 05:54:21
> 250, 251 ありがとうございます。 既存のDBを使いたかったら、PHPとかサーバサイドでその処理を行い、 xul+jsはフロントエンドとして使う、ということですね。 flexとかと同じですね。
sageのいれどころ間違いました。すいません。
一瞬ThunderbirdにSageのXPI突っ込んじゃったのかと思っちゃったじゃないか
ナイトリービルドではXUL(JavaScript)の仕様もあちこち変わってきているように見受けられますが、 そういった細かい仕様変更やバグフィックスなどに関する情報はどこで手に入れることができますでしょうか?
>>255 mozillaのwikiに載ってるよ。
ちなみに
>>228 はxulrunnerでしか関係ないと思われ
xulrunner結構いいけど是と言って作る物が思いつかないorz
サイドバーにテキストボックスを1つ配置したとして、 その内容(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が表示される)
ああ何か違う_no countを〜じゃなくて、テキストボックスのvalueをインクリメントして〜、です
preferencesに保持するのが一般的と思われ
>>260-261 ありがとうございます。
ただ、例なので単純に数値のインクリメントにしてみたんですけど、
実際はテキストボックスでなくツリーで、
ツリー内の状態を保持しようと考えてます。
その場合もやっぱりpreferencesしか手はないでしょうか?
>>265 乙です。
chrome.manifestはinstalled-chrome.txtの記述にさらにcontents.rdfのoverlayの記述を加えたような感じですね。
XMLではないので読み書きしやすいので、こちらの方がよさげな気がします。
ただ、今までinstall.rdfで登録していた拡張の名前やバージョン、アップデートURLなどの情報はどうなるのだろうか。
267 :
デフォルトの名無しさん :05/03/05 01:55:04
ほんとだね。どうなるんだろ
>>266 いや変わらないでしょ
>install.rdfと
って所はただのミスでしょ
一箇所にまとめるのもいいと思うしスピードを上げるのもいいけどRDFの採用を減らすのはどうかと思うな…
んで疑問なのはmanifestの置く場所がxulrunner(というかアプリケーション側)と違う事。(アプリケーション側はchromeフォルダ内)
windowsでfirefoxのtrunkを使っているのですが window.open("chrome://*",null,"chrome,alwaysRaised"); が聞かない様な気がするのですがどうすればいいのでしょうか?
便利でメジャーなプラグインを自動で検索してインストールするプラグインキボン
親のzLevelが設定されてないとだめなのかなぁ…
>>271 窓の社(not 杜)の中の人乙
ウィンドウの内部名はなんでnullになってるの?
>>273 '_blank'になおしますた。
それと上手くいったけどtopmostっていってもfirefox内だけなのねorz
システムに対してtopmostにできるとフィッシングに使う馬鹿が出るから仕方ない と言っても特権持ったXULアプリならできても良さそうなもんだがな
276 :
デフォルトの名無しさん :05/03/08 01:32:07
Win32API呼ぶ方法ってありますか?
rundll32.exe使うとかどうよ
そんなんじゃIEには勝てないな
>>278 ええ、確かにIE+ASP.NETとは比べ物になりませんよ
やりようによってはウイルスだってハードディスク丸ごとフォーマットだってできちゃうXULに勝ち目はありません。
nsIViewManagerでサムネイルが出力できるようになったのはいいんだけど(set MOZ_FORCE_PAINT_AFTER_ONLOAD=c:\tmp\test)、xpcom側から使えないのがなぁ… 是使えればもっと色々なことできそうなのに… 誰かパッチ書いてくれないかなぁ(他人任せ)
武熊をサムネイルで整理とかできたらおもしれえかもな。
ブラウザが持っているダイアログ(ブックマークに追加、など)を呼び出して、通常と違う動作をさせるにはどうしたらいいんでしょうか? 通常呼び出される場合には手を加えず、特殊な場合だけ動作を変えたいのです。
引数を渡してウィンドウを開く
>>282 <dialog id="****">を overley すれば?
overley の js で通常と特殊を振り分ければできるっしょ。
なるほど。ありがとうございます。
>>275 chrome内ならできるようにして欲しいなぁ。
でないとランチャーや時計みたいな小物アプリが…
Flasherって何?inIFlasher ウンコモラッシャー!
すいません。今、XULでMozillaのToolbarを作っています。 ツールバーでアイコンとアイコンの間に仕切り線を入れたいのですがどうしたらいいのでしょうか? デフォルトであるブックマークのツールバーの「ホーム」と「ブックマーク」の間にある仕切り線みたいなのが良いです。 よろしくお願いします。
>>289 separatorかと思ったけど、
これだったらちょっと検索しただけで分かるよね
他の何かかな?
DOMインスペクタ使ってる?
ドロップダウンリスト関連の質問です。 リストのラベルをJavaScriptで作成した変数(配列変数)を使いたいんですか どうすればいいんでしょうか。 具体的には以下の通りです。
<script type="application/x-javascript"> <![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>
>>294 それはどのように行えばよいのでしょうか?
具体的に、丁寧な説明をお願いします。
もう少しjavascriptを勉強したら?
>>292 menupopupにID付けといて、
var mi = document.getElementById("mp").firstChild;
while(n<5){
teArray[n] = n + "番目";
mi.label = teArray[n];
mi = mi.nextSibling;
n++;
}
みたいにすればいいんじゃ?
ただしonloadなどで実行してね。
もっとも、俺なら294のように動的に要素を生成して挿入するね。
>>298 ありがとうございます。早速やってみたのですが・・・、クリックしてもリスト(アイテム)が出てきません。
以下のスクリプトで実行しました。どこに問題があるか教えていただけると幸いです。
<?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>
>>300 menupopupの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>
とするか、
(続き) <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"/> とするか、ってことです。
すいません、画像の整理がしやすいように、"今自分の指定した規則のファイル名"で、ファイル保存する拡張を作りたいのですが
contentAreaUtil.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
DOMインスペクタのようにノードを監視するにはどのようにすればよいでしょう? DOMインスペクタのソースを一通り眺めてみたけど理解できずorz
DOMAttrChange(だったっけ)はとりあえず使えてます
そもそもDOM Inspectorってどうやって監視してるんだ。
変更内容がいまいちわからない。 具体例を挙げて説明キボンヌ。
window._contentが使えなくなったのかな?
そりゃ大変だ。
http://nyozlla.hp.infoseek.co.jp/cgi-bin/nyoboard.cgi > 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 ) 参照。
> しかし、この「根本問題の修正」はいわば「仕様上のぜい弱性の修正」で
> もあるため、一部の「拡張機能」が動作しなくなるなどのトレードオフが
> 生じています。
318 :
デフォルトの名無しさん :2005/04/10(日) 03:33:55
XULでポトペタ環境ってまだないの?そういうのがあると 手軽なGUI作成ツールになるんだけど
>>318 XULDでテスト中
chrome://xuld/content/visualformmaker/formmake.xul
ただしMozArtを元にしてるのでそっちの許可が下りない限りは(ry
#tree表示がないときついな
321 :
320 :2005/04/10(日) 11:23:45
これってブラウザの外に窓開いて独立したアプリを作ることもできるの?
>>323 ブラウザ自体XUL+JavaScriptで記述されてますから。
XULRunnner がそれじゃない? 使ったことないから知らないけど。
>>323 できます。
Firefox内でも、「ブックマークの管理」ダイアログやDOMインスペクタ、
設定ダイアログ、拡張機能の管理ダイアログなどが
「ブラウザの外に窓開いて独立したアプリを作」った例と言えます。
-chrome引数付けて開けば単独で開けたはずだし
>>330 adblock とか livehttpheaders とか結構使ってるよ。
>>331 あくまでもスキーマ登録とか処理介入じゃん。
xptを含むのってほとんど無い…
XULRunnerのWindows版ナイトリキター
+ テキスト ├テキスト └テキスト ↑ ツリーのこの部分の幅を調節するにはどうすればよいのでしょうか?
337 :
335 :2005/04/16(土) 17:02:53
>>336 ありがとうございます。それは試しましたがtree-lineの上に上書き?されてしまいます。
出来ればtree-lineは残した状態で調節したいのです。
ちなみにこう書きました。
treechildren::-moz-tree-indentation {
width: 0px;
}
リリースバージョンが上がるたびに互換性の問題で動かない拡張が山のように出るな
もっとライブラリ化しまくって中間ライブラリで対処できるようにするべきだと思うんだけど…
342 :
デフォルトの名無しさん :2005/04/28(木) 00:09:26
Firefox専用の拡張をMozillaで使えるように改造とかできますか?
場合による。
IDEっつか、CVSとかがついた統合環境にならんかなぁ
これってECMA Scriptの仕様にもある機能なの?
パッと見 Ruby っぽい? Ruby にもメソッド新設されないかなぁ
>
>>348-349 ECMA-262 3rd にはないよ。
concat, join, pop, push, reverse, shift, slice, sort, splice, unshift, length
これだけ。
独自拡張やるなら JavaScript 1.5 と ECMA Script 区別できるようにして欲しいなぁ
https://bugzilla.mozilla.org/show_bug.cgi?id=62485
個人的には大文字を使うのが気持ち悪いんだが、 これもJAVA風味ってことかねぇ。
しかし、javascript1.5の準拠バージョンが1.8b2になってしまったな。 1.8finalを出せるとよかったんだが…
indexOfがあるならlastIndexOfもほしいような気がするけど実際には使わないかな? にしてもforEachとかmapとかArrayだけじゃなくって普通のObjectにもほしいな。 大文字小文字という点ではStringのsubstringとsubstrだけが例外なのかな?
"substring"で一単語なんじゃないかな。
あっ、ホントだ。sub stringじゃなかったのね。 substring 【名】 サブストリング、従属文字列{じゅうぞく もじれつ}、部分列{ぶぶん れつ} (スペースアルク英辞郎より)
また Gnome HIG か。 悪い方向にしか働いてないんじゃないか? 俺、Gnome なんて使ったことないし。fluxbox で十分。
入門のための書籍もしくはwebサイトはありませんか?
> 359 Win の beast(tinderbox 最新) trunk だと Option ダイアログに OK と Cancel しかない。 browser.preferences.instantApply を true にすると Close だけになる。 何か操作間違えてるかな、Theme はデフォルト。
どれ、って言われてもなぁ。 (いろんな人の)脳内としか言いようがない。 まだ1.1が出てないうちは、あれでいいのかもしれないが、 今から拡張の書き方を覚えるなら、contents.rdf云々を覚えるのは無駄。 賞味期限があと一日しかない牛乳を買うような感じ、とでも。
373 :
デフォルトの名無しさん :2005/05/24(火) 02:39:00
ユーザーにプログラムを配布するときはどうすればいいの? クラスが登録されていませんと出て、実行できないのですが・・・。
http://homepage2.nifty.com/spw/tips/Gecko.html ここにある、実行ファイルを実行すると、Mozilla ActiveX Controlがインストールしてある環境では
うまくいくのですが、そうでない別のパソコンでは上記のようなエラーが出ます。
ともにfirefoxはインストールしてあります。
Mozilla ActiveX Controlは必ずインストールしなければならないのでしょうか?
それともregsvr32 を使って何かを登録すればよいのでしょうか?
377 :
デフォルトの名無しさん :2005/05/24(火) 17:06:00
自作のJava XPComオブジェクトを呼び出す(By LiveConnect)Firefoxプラグインの作り方を
紹介しているようなページをご存知な方いらっしゃったら、教えてもらえませんか?
Javaでなくて、自作XPComだけでもかまいません。
ここのスレッドでも紹介されているようなサイトを色々見ながら試行錯誤しているのですが
なかなか痒いところに手が届く情報が手に入りません。
今は、
http://simile.mit.edu/piggy-bank/index.html を解析しながら試しているのですが、規模が大きすぎて。
379 :
デフォルトの名無しさん :2005/05/24(火) 18:36:43
>> 378 はい、拡張でした。 XPComに関して、呼び出しはまったく問題ないのですが、 idlにインターフェイス定義してから先、どうやってコンパイルするのか、 どこにxptファイルを置くのか、どのような仕組みでdllがロードされるのか という点が分かっていません。 情報ありがとうございます。調べてみます。
382 :
デフォルトの名無しさん :2005/05/25(水) 01:05:54
Sageの様にブックマーク内の特定フォルダを取得したくて苦戦中っす。 bookmarks-menuをDOMで掘ろうとしても、「このページをブクマ」等しか取得できなかった。 とりあえず、XUL上でRDF & template でブクマ全体をメニュー化するところまではいったんだけど、 特定のフォルダのみ表示ってruleでいけるのでしょうか? RDFをDOM形式に変換できれば簡単なのに・・・
>>382 RDFのXPCOMだけで掘り進めるので、慣れれば簡単ですよ。
ちなみに、rdfをdomにするのは当然可能なんですが、却って
扱いづらいのは請け合いです。なんたってRDFですからね。
384 :
デフォルトの名無しさん :2005/05/25(水) 03:49:17
>>383 ありがとうございます。XPCOMを調べておぼろげながら理解してきました。
OOPとDOM操作さえできれば拡張作れると思ってたけど、勉強することいっぱいありますね。
RDFっていうのは、RDFインターフェースを実装してて
ファイルはXMLっぽいけどAPIは別物なわけですね。
bookmarkはnsIRDFDataSourceを実装してるから、
GetSourceか、GetTargetあたりにフォルダ名やフォルダIDをパラメータで渡して
対象のノード(?)を取得して、templateに流し込む。
こんな認識でOKでしょうか? 勘違いだったらごめんなさい。
385 :
デフォルトの名無しさん :2005/05/25(水) 12:51:40
>> 380 できました。ありがとうございます。 今度はJavaのプログラムをバックエンドで動かすため、 npruntimeにトライしてみます。
>>385 どういう状況を想定しているのかわかりませんが、
npruntimeはおよそ役に立たないと思います。
javaを使うだけなら、普通のjava pluginでいいような気がするし。
ここで報告するような事では無いかもしれませんが、firefox1.04でなんとかxulmakerを動かす事が出来ました。 で、ちょっと質問なんだけど、jslibでjarのリソースを読みこむ事は出来ないのでしょうか? というのも、自分で見た限りだと、xulmaker.jsの438行目 this.XULSchema.openFile(getChromePathName("xul.xsd")); で、パッケージのxul.xsdを読みこもうとしてコケてるみたいなのです。 (この部分を適当なパスに変えてあげて、XMDocumentのgetRootElement methodの所でdocumentElementをcloneNodeするようにしたら動くようになりました)
強制的にサイドバーを開かせたいんですが、 そういう関数はありますか? toggleSidebar() じゃなくて openSidebar みたいな。 あるいは、 サイドバーが閉じてることを調べる方法でもいいんですが。
>>389 toggleSidebarの実装を見れば分かります
どうもありがとうございます。 toggleSidebar みたら forceOpen オプションがありました。 toggleSidebar(aCommandID, forceOpen)
embed.nextSiblingが存在しない
>>393 それだと分裂じゃなくエラーになると思うのですが
<html><body>
<embed src="a.mp3">
test
</body></html>
の場合、embed.nextSiblingはテキストオブジェクトです("\ntest\n"になります)
<html><body>
<embed src="a.mp3"></body></html>
このようにnextSiblingが存在しないように書いたとしても、
Greasemonkeyが最後にスクリプトを加えるので存在しないと言うことはありえないと思います
(この場合Unenbedで加えられた[download]のリンクが分裂します)
Greasemonkeyってヘッダじゃなくて、bodyにスクリプトを足してるのか?
>>395 document.body.innerHTMLをalertを使うなどして表示すると
<script>(function(){
var GM_xmlhttpRequest = window.GM_xmlhttpRequest;
var GM_registerMenuCommand = window.GM_registerMenuCommand;
var GM_setValue = window.GM_setValue;
var GM_getValue = window.GM_getValue;
var GM_log = window.GM_log;
//user.jsの内容
})();</script>
このようなタグが最後に追加されています。
スクリプトの実行が終わると削除されるようですが。
>>396 はGreasemonkeyスクリプト中でdocument.body.innerHTMLを参照した場合の話です
(function(){alert(document.body.innerHTML;})();
こんな感じのスクリプトを作ると確認できると思います。
ちなみにalertじゃなくdocument.body.appendCild(documen.createTextNode(document.body.innerHTML))だと
先に言ったような分裂現象が起こります
わからないなら、xpathやめてdomのを使っとけばいいんじゃない? ああいうfor文を書いてカッコいいとか思ってるんなら止めはしないけど。
javascript:(function(){h=document.createElement('a');h.href='
http://www.google.co.jp ';
h.appendChild(document.createTextNode('google'));document.body.appendChild(h)})()
こんな bookmarklet を試して見ると分裂は起きない。
Greasemonkey が二度 appendChild してる可能性がある。
一度 bookmarklet で試してみて Greasemonkey の問題か Script の問題か
切り分けるのが先決か?
>>398 あのfor分はUnembedのパクリですが、問題はそこじゃないと思うんですが・・・
getElementsByTagNameでも同じです
というかdocument.body.appendChild()すると分裂するんです
(function(){document.body.appendChild(documen.createTextNode(document.body.innerHTML));})();
例えばこのスクリプトも分裂現象が起こります
>>399 Greasemonkeyで件のスクリプトを使ったときだけ問題が起こります
普通にscriptタグで記述すると問題はおこりません
たまーにnsIWebBrowserPersistのsaveURIでうまく保存できない画像があるのですが、原因は何なんでしょうか???
下記のスクリプトでcanonのロゴ画像を保存しても壊れてしまいます。
var src = Components.classes['@mozilla.org/network/standard-url;1']
.createInstance(Components.interfaces.nsIURL);
src.spec = "
http://consumer.usa.canon.com/sys/images/canon_logo.gif ";
var dst = Components.classes['@mozilla.org/file/local;1']
.createInstance(Components.interfaces.nsILocalFile);
dst.initWithPath("C:\\canon_logo.gif");
var wbp = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
.createInstance(Components.interfaces.nsIWebBrowserPersist);
wbp.saveURI(src, null, null, null, null, dst);
>>400 htmlの方でそのスクリプト呼んでない?
テストのために<body onload="func()">みたいにしてて、
そのままgreaseスクリプトとしても実行してるとか
>>404 alert挟んででデバッグしてみましたが1度しか呼ばれてませんでした
>>402 駄目でした。setTimeoutでそれなりの時間を設定すれば分裂は回避できましたが・・・
分裂した方はDOMインスペクタに表示されず、
選択しようとしても変なことになる
(後に付いた方のテキストをドラッグして選択しようとすると何故か前の方の同じ部分が反転表示になる)
のでGreasemonkeyかFirefox、あるいはGeckoのバグのような気がします
どうもありがとうございました
>>406 まずは、ちゃんと拡張をつくってインストールしてください。
<Profile>/ もしくは <Firefox>/components の compreg.dat と xpti.dat 一度削除した?
>>408 拡張を作っているなら、そんなトリッキーなことをしてはいけません。
ユーザーが一人もいないなら話は別ですが。
>>409 拡張作成時は compreg.dat の削除でOK。
412 :
406 :2005/05/31(火) 01:20:44
XPIにパッケージ化してインストールしたらうまくいきました。 横着してXULDで作った拡張のディレクトリに 後からファイルを入れたのがいけなかったようです。 インストール時じゃないと登録されないのね。 アドバイスくれた人ありがと。
拡張の ID ってどうやってつけるんでしょうか。 適当につけていいんですか?
値が衝突しないように算出方法が決まっているので、所定のツールを使うべし。 その名をuuidgenという。 WindowsだとVS.NETやPlatform SDKとかに入っている。 LinuxやFreeBSDなどのUNIXだと標準で入ってる。
415 :
413 :2005/05/31(火) 12:04:48
どうもありがとうございます! 手元のlinuxに入ってました。 でもどうやって重ならないことを保証してるんでしょう? 単純に巨大な数の中からランダムで選んでるから? 16^32 パターンあるみたいですね。
416 :
413 :2005/05/31(火) 12:16:37
Components.classes["ぬるぽ"].createInstance(Components.interfaces.nsIガッ); でインスタンスを作るとき、nsIガッ のコンストラクタに引数を渡す方法はありますか?
コンストラクタに引数とか言ってるようじゃXPCOMへの道はまだ険しいね
>>421 それが引数付きコンストラクタに見えるんだったら、
もう険しいどころの話じゃないぞ。
protectedとか関係ないし。
xpcomやるのに、c++がどうしても必要だとは言わんが、
ソース読んで質問するなら、ある程度の理解が要求されるわな。
いや、ある程度でいいんだけど…
ac_add_options --enable-static でコンパイルするコツを教えてください 全部
>>427 ビルド環境もわからないのにコツも糞もない
ac_add_options --disable-shared
をセットで使うのが基本だが
物凄い勢いで文字化けしてるのは俺だけなのか
皆化けてるんじゃなかろか
何とか意味をとれそうなのはUTF-8だけど、やっぱり化けてる。 混ぜてあるんじゃないかなぁ
433 :
427 :2005/06/08(水) 23:35:31
>428 すっとんきょうな事言って申し訳ありません VC6なんですが、こけるんです。派手に、mozilla側じゃなくWindowsが ファンが鈴鹿ばりにうなってるし 再起動後に傷口みようとして、2>build.errで飛ばしてもなんも出来てなくて エラーなのかもわからない、そこで尋ねてみたですよ メモリーいくらぐらい積んでるんです?256MBだと必然? その文字化けものっそいね
本家の文書を訳して公開→その後本家が更新するも追随せず
DOMの要素を識別する値を取得したいんですが 何かありますか? 比較するときなどに使いたいのですが
>>437 idふれよ。
ない・嫌なら独自プロパティとか。
まだ internet-draft だし IANA にも登録されてないのに「x-」取っちゃっていいのか?
441 :
437 :2005/06/17(金) 00:37:33
>>438 ありがとうございます。
独自プロパティとはどういう物ですか?
>>437 普通に値として比較できるんじゃなかろうか。
if (element1 == element2) {
//Todo
}
else {
//Todo
}
jsobjectはともかく、中の人のポインタは同じだと思うし、
そういう便宜を計っていると思う。
443 :
437 :2005/06/17(金) 06:15:43 BE:107543693-##
>>442 えぇ、確かにそのまま要素同士で比較できるんですが
その値を取得できないものかと思いまして。
うわ、こんな時間に即レスされてるとは思わなかった。
>>443 そりゃ、値の用途によるんじゃないかな。
少なくとも、汎用的な意味では無理だから。
いつ取得していつ(比較に)使うわけ?
445 :
437 :2005/06/19(日) 07:27:49
>>444 RDFにその値を保存しておき、その値で対象の要素を比較
みたいな事をやりたいんですが・・・。
>>445 つまり、セッションを跨ぎたいと?
そらむりでそ。
血統書でも書いておけば?
XPathでも使うとか
nsITreeViewを使用したツリーの実装で、各ツリーセルのアイコンを定義するにはどうすればよいでしょうか?
getImageSrc
即レスありがとうございます。無事できました。
451 :
デフォルトの名無しさん :2005/07/11(月) 17:38:19
メールの本体をstringとして参照する方法をご存知の方いたら教えてください。 ヘッダとアタッチメントを見る方法はわかったのですが(nsIMsgほげほげ)、 本文だけがわからんとです。orz
452 :
451 :2005/07/11(月) 17:38:51
追加:451はthunderbirdでの話です。
454 :
451 :2005/07/11(月) 19:16:25
どういたしまして。
ブラウザタブの切り替えを確実に捕捉する方法はありませんか? GooglePageRankではbrowser.xulのwindowにaddEventListenerでloadとfocus時のイベントを追加するという方法を とっていますが、これだとイベントがダブって発生してしまったり、まれにうまくいかないことがあるようです。
>>458 progresslistenerのonlocationchangeは確実に呼ばれるな。
>>459 ありがとうございます。こんなふうなものを試しましたが、NS_ERROR_ILLEGAL_VALUEで怒られてしまいました。
var pl = {
onLocationChange : function() { alert("OK"); }
};
gBrowser.mCurrentBrowser.webProgress.addProgressListener(pl, Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
461 :
458 :2005/07/17(日) 04:05:28
gBrowser.mTabBox.addEventListener("select", function(){dump("OK");}, false); どうやらこれで解決しました。
javascript 書くのにエディタ何使ってます?
Emacs + java-mode ロクなモード elisp が無いのが痛過ぎ
463に同じく。Meadowだけど。
Vim
メモ帳
TeraPadかな
メモ帳はさすがに苦しいなぁ。 CRが入らないように出来ないと使えない。
vim って vi 的には使えるけど、 インデントの仕方がよくわかんないんだよな。
インデントなんていらね。 気がついたら、親指が二回スペースを叩いてる。
それは時間の無駄だろう
そうか? cvsから引っ張ってくるソースでも異なるインデントが混在してるし。 俺はスクリプトも一行80文字以内でやってるから、インデントを4にせずに、2にしてた。 結局スペースを2回の方が、淀みなく書ける。
それは単にお前の慣れの問題じゃないのか? 俺もソフト2タブ派だけどオートインデントだよ。 使ってるのは xyzzy。
まあ人によるんじゃないかな。 本当にすごいプログラマでも エディタの機能ろくに使わない人もいるし。
というか、インデント量が深くなるとやってられなくね? タブ一発で揃えてくれないと、かなりイライラすると思うのだが。
深くならないからいいんだよ! 俺の事はもうほっといてくれ。 実際にすごく深い時は、コピペだな。 慣れっておそろすぃ。
オートインデントとか使わんのか。
>>468 わたしゃWindowsしか使ってないんでわからないんだけどCRが入ると困る場面ってどんなのがある?
unix改行とwindows改行が混ざってる拡張いくつか見たことあるんだけど、 あれはやってるの? コピペのせいかな。
>>479 そんなんで「使えない」ってレベルになるほど困るのか?
まあ、拡張しか書かないんだったら、どっちでもいいな。
ネイティブコードに関しては、XPコードではCRLF改行を使わないって規約があったな
CRLFを使わないんじゃなくて、LFにする、ってことだな。 今は知らんが、昔のマックはCRだったし。
install.rdfでプラグインをインストールさせられますか? IE Tabを一纏めにしたい・・・。
487 :
デフォルトの名無しさん :2005/07/31(日) 16:40:35
>>486 trunkなら可能
branchならミリ
二つ同時にインストールさせるようにする事は可能
488 :
デフォルトの名無しさん :2005/08/03(水) 19:29:46 BE:409147597-#
うーんアップデートに関する日本語ドキュメントが少なくてこまってます。
■確認したこと
http://www.mozilla-japan.org/projects/firefox/extensions/packaging/extensions.html ここの「カスタムアップデート RDF」を参考にupdate.rdfを作成してアップ。
,htaccessに
AddType text/rdf .rdf
と記述(試しにこれを消すとエラーになる)
■問題点
バージョンアップしたxpiと一緒にrdfをアップしても、
「更新されたパッケージが存在しませんでした」
となる。
update.rdfへのパスや記述が間違えてるとエラーになるので、
それはないものと思われる。
■特にわからないこと
上記URLの「em:updateURL」を見ても、
%ITEM_VERSION%アップデート対象となる拡張機能のバージョン
とか、それを得るためにupdateURLにrdfを問い合わせるんじゃないの?
問い合わせるときに先にGETで送るとか、どうもよくわからないんで、
この「更新問い合わせ」そのものの動作がよくわからない。
■特に聞きたいこと
アップデートがつつがなく行えてる皆さん、
他になにか特別なことする必要はありますか?
FireFoxを窓から投げ捨てなさい。
490 :
デフォルトの名無しさん :2005/08/03(水) 19:34:39
491 :
488 :2005/08/04(木) 03:20:44 BE:77933243-#
具体的にやったことを書くと、
update.rdf
<RDF:Description about="urn:mozilla:extension:{「xpiのid」}">
<em:version>「バージョン」</em:version>
<em:updateLink>
http:// 「xpiの置いてあるサイト」/「xpiのファイル名」.xpi</em:updateLink>
</RDF:Description>
を作成して
http:// 「xpiの置いてあるサイト」/update.rdfとしてアップ。
.htaccessに
AddType text/rdf .rdf
と記述。
xpiのinstall.rdfには
<em:updateURL>
http:// 「xpiの置いてあるサイト」/update.rdf</em:updateURL>
を記述。
これでupdate.rdfに記載してるバージョンより低いxpiから
拡張機能の更新マネージャーで更新問い合わせしても
「更新されたパッケージが存在しませんでした」
となります。
うまく更新を伝えるには他に何かチェックするところはありますか?
それ書式が古いよ。 <rdf:Description rdf:about="urn:mozilla:extension:(ID)"> <em:updates> <rdf:Seq> <rdf:li> <rdf:Description> <em:version>(バージョン番号)</em:version> <em:targetApplication> <rdf:Description><!-- Firefox --> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.0</em:minVersion> <em:maxVersion>1.0+</em:maxVersion> <em:updateLink>(.xpiのURI)</em:updateLink> </rdf:Description> </em:targetApplication> </rdf:Description> </rdf:li> </rdf:Seq> </em:updates> </rdf:Description>
493 :
488 :2005/08/04(木) 03:57:49 BE:58450133-#
>>492 ありがとうございます。
うまいこと更新できるようになりました。
人大杉制限がついてから、誰も書き込んでないのか。 このまま放置しておけば、さすがに落ちるだろうな
http://pc8.2ch.net/test/read.cgi/unix/1065583401/837 837 :KoRoN@Vim%Chalice ◆8XALICEsdk :2005/09/03(土) 03:22:34
今手元で、XPCOM+C/Migemo使ってnsIMigemoなるものを作り、簡単なサンプルが動いて
ます。こんな感じで、MozillaのJavaScriptで正規表現が取得できる状態なんです。
> netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
> var migemo, answer;
> migemo = Components.classes["@kaoriya.net/migemo/nsMigemo,1"].createInstance();
> migemo = migemo.QueryInterface(Components.interfaces.nsIMigemo);
> answer = migemo.query(document.getElementById("MIGEMO_INPUT").value);
> document.getElementById("MIGEMO_OUTPUT").value = answer;
すばらしい。 クロスプラットフォームならなおすばらしい。
とりあえず落としてみた限りではWindows専用だったけど プラットフォームごとのバイナリを用意することもできるようになったし クロスプラットフォームも夢じゃないよね? これ使えばXUL/Migemoがもっと速くなるのかな?
498 :
デフォルトの名無しさん :2005/09/12(月) 11:47:33
locale の browser.dtd からテキスト読んで javascript 内でつかいたいのですが無理ですかね .xul に browser.dtd 読ませてなんかの要素に <element id="test" label="&test;/> のような感じで 取得するとか・・・。でもどの要素にしたらいいのか分からない_| ̄|○ ってかそもそもそんなことしたらだめなのか? 何とかして dtd を javascript で使いたい・・ javascript で if (label == "test") とかしたら言語が変わったとき if (label=="テスト") にしなきゃいけないし、言語ファイルによっては label="テストです"とかにしてるかもしれないし。 言語を意識せずに &test;と書いてしまった方がいいと思うのです。 if (label=="&test;") とか testlabel = getLabel("&test;"); if (label==testlabel) とか出来たら楽になるかと いいアイデアありませんか?
>>498 xbl内では普通にそうやっちゃうなぁ。
オブジェクト化する部分だったらpropatiesの方がいい
表面だったらxul内でそうやればいいとおも
firefoxのプラグインの開発情報はどこで手に入りますか?
>>498 createEntityReferenceは……対応していないようだ。
となるとcreateContextualFragmentで無理やり生成するとかかな?
503 :
498 :2005/09/12(月) 17:10:43
menuitem.label とかです。 Fx1.0.x だと 「URL を開く(L)...」となっているのですが Fx1.5.x だと 「URL を開く...」となっています こういう違いがあるので menuitem.label で比較すると面倒だなとおもいまして。 かといって全部IDがふってあるわけじゃないし やりたいことは Cutemenus の locale 対応です。
JavaScript で DTD ファイルを読み込んで解析するという力業になりそう
>>505 labelでなくkeyとcommandで検定したわけね。
なるほどこっちの方があきらかに良さげ。
っていうか元のやつは非英語圏をまったくもって無視した作りですね。
507 :
498 :2005/09/13(火) 00:34:30
>>505 なるほど。でもこれですべてのmenuitemに対応できるわけではなさそうですね。
やはり label もみた方がいいのか・・・
>>507 こんな感じで隣からたどるのはダメですかね。
case "cmd_print": iconic(mItems.item(i), 'print');
iconic(mItems.item(i - 1), 'hatena'); // Page Setup...
他の拡張でメニューをいじられると、ずれちゃうかもしれませんが(^^;
いちおう、File メニューだけ変更したものをアップしておきました。
すみません。名前を書き忘れました(^^;
アップしたのは、
>>505 の URL です。
getEntities() 知りませんでした。 ためになります。
>>510 DTDからDTDの呼び出し、<!ENTITY xxx "&yyy;というテスト">の対応キボン
514 :
498 :2005/09/13(火) 17:24:10
>>510 うほwいいですね。
参考にさせてもらいます。
いえーい皆もっとやれやれーーー!いいぞーー
だが断る!
open link in new tabの時に、 新しいtabに移動するかどうかを、 「設定」のtab browsingのところまで行かないで、 ナビゲーションツールバーのボタンなんかで設定する拡張ありますか?
521 :
デフォルトの名無しさん :2005/09/25(日) 14:51:44
cutemenusを改造して、 プロファイル/menucions/label/戻る.png を取得するようにしてるのですが 「戻る」はコンテキストメニューとメインメニューの「移動」のところにあるのですが コンテキストメニューの方にしかアイコンがつきません コンテキストメニューにアイコンがついているということは画像パス取得は間違ってないと思うのです。 なぜメインメニューの方にはつかないのか・・・。 ソースを張りますのでどこが悪いのか教えてください。
522 :
521 :2005/09/25(日) 14:54:49
function iconic(menuitem,icon) { menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", icon); } function getIcon(type,name) { var DIR = Components.classes['@mozilla.org/file/directory_service;1'] .getService(Components.interfaces.nsIProperties); var fileOrDir = DIR.get('ProfD', Components.interfaces.nsIFile); fileOrDir.append("menuicons"); fileOrDir.append(type); fileOrDir.append(name + ".png"); if (!fileOrDir.exists()) return null; var ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var entryURI = ioService.newFileURI(fileOrDir).spec; return entryURI; } function cutemenusInit() { var mItems = document.getElementsByTagName("menuitem"); for (var i = 0; i < mItems.length; ++i) { if (mItems[i].id) { var icon = getIcon("id", mItems[i].id); if (icon) iconic(mItems[i], icon); } if (mItems[i].label) { // 戻るは2つあるのでmItems[i].label == 戻るが2度あるはずなのに・・・ var icon = getIcon("label", mItems[i].label); if (icon) iconic(mItems[i], icon); } }
pref.jsにセットされている不要な設定を削除する(値だけでなくキーも削除する)方法はありますか?
nsIPrefBranchのclearUserPref()
いや、私も作者はチェックすべきだと思います。 1.0系はそれでぐだぐだになりましたし。 逆に言うと、マイナーアップデートでも、 拡張にとっては致命的な変更が有り得るってことが、 1.0系で経験論的に実証された、という流れですね。 惑星はブログを勝手に集めてるだけなので、 あそこに有用な情報が載るかどうかは運次第、というか、 さほど重要な変更でもないし。
惑星でもいいけど、developer.m.o とか wiki.m.o に書いておいてほしいな。 Bugzilla だけってのは困るよ。
529 :
デフォルトの名無しさん :2005/10/12(水) 01:09:00
nsDictionary.jsとかってどうやって使うの?
531 :
デフォルトの名無しさん :2005/10/12(水) 12:16:24
nsDictionary.jsって、nsIDictionaryといっしょなんですか? ごめんなさい、よくわからなくて…
nsなんたら の ns って何の略ですか? netscape?
おそらくWin特有の問題だと思うのですが、 フォルダ名の末尾が表、能、ソなどで終わるフォルダをnsIFileのcopyToを使って コピーしようとするとフォルダ内のファイルが移動されずに処理が完了してしまいます。 これを防ぐ対策は何かありませんか?
>>531 nsDictionary.jsにはContract IDが"@mozilla.org/dictionary;1"であるXPCOMコンポーネントの実装コードが含まれている。
で、そのコンポーネントはインターフェースnsIDictionaryを実装している。
つまり
var dic = Components.classes["@mozilla.org/dictionary;1"].createInstance();
としたときのdicのソースコードがnsDictionary.js
>>534 最新のtrunkのGREでも発生するならBugzillaに報告してみたら
537 :
デフォルトの名無しさん :2005/10/17(月) 12:44:23
>>535 なるほど、わかりました!!ありがとうございます!
538 :
デフォルトの名無しさん :2005/11/05(土) 01:39:36
transformiixってどこいったの 打ち切ったなんて事ないしょ?
どこいったってどういうこと? ちゃんとあるじゃん。
542 :
デフォルトの名無しさん :2005/11/12(土) 22:19:40
XULで圧縮ファイルの展開は可能ですか?
zipはできるはず xpiはzipそのものだから
あくまでも既存のXPCOMでできないかと思ったしだいです。 けどXULPlanet落ちてるな。
XULPlanetがなくてもソースがあれば……ってLXRもサーバーエラーで見れない。 こりゃもうダメぽ。
archives.org経由で見たけど、XPCOMでzip関連のものはないような。
>>548 あるはずだよ。
#jslibを参考に汁
>>549 thx.
@mozilla.org/libjar/zip-reader;1 あたりですね。
ちなみに、jslibもけっこうよさげ。
上で話題になっていた、UUID用のライブラリもありました。
さすがにMACアドレスは取っていないみたいだけど。
XULPlanetもLXRも復活してる
プログラミングではないのですが、 groupboxを二つ横に並べることは可能でしょうか? □日のように左に一つ、右に縦に二つ置きたいのです。 groupboxにflot:leftでは無理なようで・・・。
<hbox> <groupbox orient="vertical">...</groupbox> <groupbox orient="vertical">...</groupbox> </hbox>
<hbox> <groupbox orient="vertical">...</groupbox> <vbox> <groupbox orient="vertical">...</groupbox> <groupbox orient="vertical">...</groupbox> </vbox> </hbox> か。
555 :
552 :2005/11/30(水) 15:25:11
ありがとうございました、出来ました。
1.5になってJavaScriptコンソールにスタイルシートのエラーが出力されるようになってうざったいな。
<xbox>360</xbox>
Firefox 1.5 で SVG サポートが入ってxhtmlに埋め込んだSVGとか出るようになったわけだけど これってXUL内でも使えるかしら?
>>558 display:-moz-box;でクラッシュするバグさえ無ければ。
popupが今表示されてるかどうかを知るプロパティのようなものはありますか?
onshowpopupイベントがあった気ガス
onpopupshowing(ポップアップメニューが表示される直前) onpopupshown(ポップアップメニューが表示された直後) onpopuphiding(ポップアップメニューが消える直前) onpopuphidden(ポップアップメニューが消えた直後) だね。 「ポップアップ」というのが広告等のポップアップウィンドウのことではなく ポップアップメニューのことなら、これでいける。
>>561 onpopupshowingのこと?
あれと今回の質問の意図は違うと思うが
例えばhoge.visibleみたいな感じでtrueやfalseを取得したいんじゃね?
564 :
デフォルトの名無しさん :2006/01/01(日) 01:33:45
リンクをクリックした時にサウンドをならす拡張を作りたいと思ったのですが、どういう JavaScript を書けばFirefoxでリンクをクリックした時にサウンドをならせるのか分かりません。 どなたかご教授いただけないでしょうか?
565 :
デフォルトの名無しさん :2006/01/01(日) 02:32:30
そういう拡張すでになかったっけ?
566 :
564 :2006/01/01(日) 04:18:19
>>565 Firefox1.5だとどれも満足に動かないので新たに作ってみようと思いまして。
既存の拡張がアップデートしてくれるならそれで良いのですが。
既存のxpiをばらして、install.rdfに書き換えれば大体動くんじゃないの? (XPCOMの仕様変更入ったものはちょっとあれだけど)
568 :
564 :2006/01/01(日) 11:54:01
もじら組をのぞいたら Navigational Sounds というのがあったのでそれいれました。 レスくれた方々ありがとうございました。
xblってむずくね
セパレータとセパレータの間にhidden="true"なアイテムしかない場合、 片方のセパレータを隠すようなスクリプトはどう書けばよいでしょうか? UserChrome.cssでdisplay:noneにしたmenuitemにはhidden="true"が付くので、UserChrome.cssに menuseparator:not([hidden="true"]) + *[hidden="true"] + menuseparator:not([hidden="true"]) のようなのを一個ずつ真ん中だけ増やして何行か書いてみたのですが効きませんでした。 DOM Inspectorで取得すると真ん中のアイテムにはちゃんとhidden="true"はあるのに。 真ん中を単に*とすると上手くいきます。 userchrome.cssの設定が適用された後にhidden="true"が適用されているのでしょうか。
ありがとうございます。 まだ組み込み方よく分かりませんけど頑張ってみます。 これ本体に組み込まれると各拡張作者さんも楽になると思うんだけどなぁ。
すみません、教えてください。 今のSeaMonkeyのアプリケーションIDって、 Mozilla Suitと同じ(86c18b42-e466-45a9-ae7a-9b95ba6f5640)でよいですか?
XPCOMのnsIFileのisReadableってメソッドってなにがfalse返すの? 読み込み不可能なデータってどんなのがあるのでしょう・・・
>>574 chmod u-r *したファイルとか。
chmodは000〜777までの全ファイルディレクトリにかけたんですが全部trueを返したんで・・・ なんなんでしょうね??
578 :
573 :2006/01/28(土) 13:05:57
>>577 さんくす。
とりあえずそれで試してみます。
579 :
デフォルトの名無しさん :2006/02/03(金) 11:15:59
Neckoについての日本語情報はどこで手に入れられますか?
580 :
デフォルトの名無しさん :2006/02/03(金) 12:57:44
開発方法について、良い方法があれば教えて欲しいのですが、現在は 1.コード修正 2.jarで固め、古いファイルを上書き 3.ブラウザ立ち上げる 4.確認後ブラウザ終了 (1へ戻る) のような手順で開発に取り組んでます。 もっと効率のよいやり方があれば教えてください。
>>580 一般的プログラマーのように全てを書き込んでから確認というのはどうでしょうか
#jarに固めないで使う方法もあるけどそれでも効率悪い
582 :
580 :2006/02/04(土) 00:02:06
まだ初心者なので Try And Error しながら色々試してる段階なので、 編集&確認という作業が必要な状態です。 ただその度にブラウザを殺しては立ち上げの繰り返しが大変面倒に感じます。 (殺さないとjarファイル上書きができません) ブラウザを殺さずにjarファイル上書きする方法があれば教えて頂きたいと思ってます。
わざわざjarに固めずソースのままデバッグすればいいじゃん
Firefox1.5ならinstalled-chrome.txtなんてめんどくさいもの必要ない。
extensions下にパスを書いた
[email protected] ファイルを置いて、
適当な開発用フォルダしたにinstall.rdf, chrome.manifestとソースファイルを
格納したcontent,locale,skinがあればよい。
ってここらへんの話って256本に載ってなかったっけ?
256本はjarで固める方法しか書いてないよ
今ネットにあるチュートリアルはほとんどが情報古くてFirefox 1.0かそれ以前のものを対象にしたものだと思うので注意。
588 :
デフォルトの名無しさん :2006/02/06(月) 03:01:52
xpi更新通知用のRDFって何で生成させるのが楽かな? 何かいいスクリプトとかあれば教えてほしいんだけど。
firefoxに最初から入ってるjar内のxulとかをmozillaスイートとか他のブラウザに引っ張ってくるのってライセンス的にどうなの? 引用元とかDIFFを書いておけば問題ないのかな?
MPL/GPL/LGPLと書いてあるならライセンスの範囲内でどう扱おうと自由でそ
>>590 レスthx
アイコンとかはどう考えたら良い?
アイコンは扱いが厄介だね まあグレーゾーンって事で 黙ってやっとくのがよさげかと
593 :
デフォルトの名無しさん :2006/02/08(水) 01:18:28
>>591 アイコンは許可取らないとダメだったはず
594 :
デフォルトの名無しさん :2006/02/08(水) 07:13:26
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
以外に読み込まなければいけない。。。?
http://www.xulplanet.com/tutorials/mozsdk/sockets.php にあるコードをいじって(最後にdocument.write(dataListener.data))を付け加えて
HTMLに埋め込んで実行してみたら
'Permission denied to call method UnnamedClass.close' when calling method: [nsIStreamListener::onStopRequest
だって、何か良い方法あります?
596 :
デフォルトの名無しさん :2006/02/09(木) 01:26:39
XPConnect特権がないからじゃないの? firefox.exe -chrome hoge.xul として読み込ませれば多分動く
598 :
デフォルトの名無しさん :2006/02/09(木) 07:18:32
どうもありがとう。根本的にその辺知らなかったよ。
ファイル操作とかXULをローカルで認証させるセキュリティの仕組みだね。
どうもおかしいと思ってたけど納得した。
ところで
http://www.lucky-bag.com/archives/2005/10/firefoxit.html こういうもんがあるけど、widgetの開発ってどの程度Extentionの開発より
簡単になるのかな。基本的に同じ技術だからそんなに変わらない?
YahooのWidgetのほうはなんかYahooから直にどうやって開発するかみたいな
資料のリンクがあるし、なんかとっつきやすい印象があるんだけど。
599 :
デフォルトの名無しさん :2006/02/09(木) 07:32:34
600 :
594 :2006/02/09(木) 12:25:22
やっぱりHTMLじゃ動かないんですね、XMLとXULの違いが(どっちも同じに見えるのですが・・・) もうちょっと勉強してみます。
601 :
デフォルトの名無しさん :2006/02/09(木) 13:17:45
XMLってのはタグで入れ子になったデータ構造一般のこと。 HTMLは一番最初にでてきた形式で、このタグ構造をもっと推し進めたのがXML。 XULもXMLの一種。
602 :
デフォルトの名無しさん :2006/02/09(木) 13:18:43
XML を基礎としたユーザーインターフェース言語 (XML-based User-interface Language)
つか、XUL の本質って JavaScript の方が、どちらかというとメインじゃないか?
604 :
デフォルトの名無しさん :2006/02/09(木) 14:50:22
昔、いろいろJavaScriptでHTAアプリケーションとか作ってたけど、 激しく生産性が悪い。まともなデバッガすらないので、なんで走らないのかすらわからない。 XULアプリも原理は単純なんだからはやくVS.netクラスのIDEできないかね?
SGMLを知らんのか…
606 :
デフォルトの名無しさん :2006/02/09(木) 20:43:43
> VS.netクラスのIDE いや、それ贅沢すぎだろw
607 :
604 :2006/02/09(木) 22:20:48
マイクロがXAMLかなんかのためにおそらくVS.net対応させるだろうから、 それ利用すれば、最小の手直しで動くと思いついたよ。
608 :
604 :2006/02/09(木) 22:28:37
>>607 GUI のポトペタ等はどうすんの?
どこら辺がどうなってどう利用すると、最小限で VS.NET 並の XUL の IDE ができるのか、俺には全然ワカンネ。
つか、無理だろ。
XML が使えるかということなら、既に VS は使えまくってるし、使いまくってるだろ。シリアライズとか。
SharpDevelop なら、オープンだった気がするから、まだ可能性はあると思うが。いや、ねーなw
どうでも良いが、VS の価値は MSDN に多くある気がしないでもない。
んなことより先に、まともな jacascript-mode がまず欲しい。
xamlはXMLベースの"コンパイル"言語。 xulはインタプリタ。
611 :
610 :2006/02/09(木) 23:45:31
ってかeclipseがxulに対応してたはず。
612 :
594 :2006/02/10(金) 01:26:01
未だにMozillaのXPCOMがHTMLのJavascriptから呼び出せないのにXMLから呼び出せる?のが分からないのですが。。。 eclipseは今学校の宿題用に入れたばかりなのでそれを使って書いてみようと思います。
>>612 権限さえ奪えばhtmlからも呼び出せるよ。
あまり意味ないけどね
614 :
594 :2006/02/10(金) 03:51:23
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
を書いているのですがHTMLでは途中でとまってしまうっぽいです
実験的にHTMLで作り、最後にXMLに移植(違う人が)して貰おうと思っていたので
onDataAvailable()とonStopRequestが呼び出せないのはかなり痛手です。
>>125 さんと同じ症状のようです
HTMLファイルをどこに置いてる? file:///c:/hoge.xul みたいな感じで普通にローカルに置いてたら動かないかな?
616 :
594 :2006/02/10(金) 13:34:30
user_pref("signed.applets.codebase_principal_support", true);
してる?
> 未だにMozillaのXPCOMがHTMLのJavascriptから呼び出せないのにXMLから呼び出せる?のが分からない
最近変ったかもしれんが、単純に言えば
chrome://... からならば XPCOM が呼び出せる。
file://..
http://... は上の設定や Signed Script にしたりしてから enablePrivilege しないとよびだせない。
618 :
594 :2006/02/10(金) 17:26:51
>>617 ありがとうございます、ID名をp0にして
user_pref("signed.applets.codebase_principal_support", true);
を付け加えるとWeb上のファイルのPrivilegeをOKするかどうか聞いてきたのでOKすると
やはり同じ問題が出現しました。
それまでにXPCOMでソケットを開いたりメッセージをEcho鯖に送ったりしているのは成功しているので
(鯖の方ではメッセージが確認できます)
onDataAvailable()とonStopRequest()だけがローカル上で開いたときと同じようにエラーがーおきました
firefox.exe -chrome file://C:\server\testCliantMozilla.html
chromeでDOS窓から開いても同じ症状が出ました。
これってMozillaのバグのような気がしてきたのですが、私の頭のバグなのでしょうか?
エラーって
>>594 の Permission denied ... と同じやつ?
何がしたいのか詳しいとこ書いてくれんとさっぱりわからんのでまずコード出せ。
620 :
594 :2006/02/11(土) 00:28:04
623 :
594 :2006/02/11(土) 02:22:40
624 :
594 :2006/02/11(土) 10:48:20
誰かがUPしてくださったコードをコピーして、try{ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }catch(e){ としたところ、'Permission denied to get property XULElement.accessKey' と'Permission denied to get property XULElement.disabled' というエラーが発生しました。 是が非でも権限をくれないようです。。。
625 :
622 :2006/02/11(土) 12:01:33
626 :
594 :2006/02/11(土) 15:42:22
>>625 >スコープ(callbackやlistener)毎に権限の取得が必要っぽいけどそれ以外は問題なかった
http://www.jt200x.com/uploder/src/up6593.txt これでしょうか?
Error: [Exception... "'Permission denied to get property XULElement.disabled' when calling method:
[nsIDOMXULControlElement::disabled]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"
location: "JS frame ::
http://localhost//up6593.html :: anonymous :: line 48" data: no]
Source File:
http://localhost//up6593.html Line: 48
Error: [Exception... "'Permission denied to get property XULElement.accessKey' when calling method:
[nsIDOMXULLabelElement::accessKey]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"
location: "JS frame ::
http://localhost//up6593.html :: anonymous :: line 48" data: no]
Source File:
http://localhost//up6593.html Line: 48
とエラーになってしまいました、Mozillaのプロファイルになにか書き忘れているのでしょうか?
>ECMAScriptの仕様書
有用な情報ありがとうございます、一週間ほど前にリファレンスを買ってきたばかりでこのような物があると知りませんでした。
明日ミーティングで誰かがこの問題を解決してくれていると良いのですが。。。
628 :
622 :2006/02/11(土) 19:40:36
629 :
594 :2006/02/12(日) 00:48:18
630 :
594 :2006/02/12(日) 09:28:18
631 :
604 :2006/02/12(日) 16:56:30
昔Moz2ch関係のサイトでIDEっぽいのがあったよーな記憶が無きにしも有らず
>>631 ローカルに書き換えるのは素人では難しい
拡張作ったことがある人でも面倒臭いかもね
まぁローカル鯖立てて動かせってこった
ボタンのラベルを複数行で折り返して表示させることはできませんか?
<button> <description flex="1"> ラベルラベルラベルラベルラベルラベル </description> </button> とか?
>>636 XBLでゴニョゴニョすればすればできるんじゃない
XPCNativeWrapperについて教えてください。 一応mozilla.orgのドキュメントは読み流したのですが、なぜそれが必要なのかがいまいちわかりませんでした。
XULRunner 1.8.0.1ってサンプルアプリのMyBrowserが動かなくね?
644 :
642 :2006/02/23(木) 22:18:32
>>642 のやつ、Windowsにも対応させました。
RDFデータソースからテンプレートで要素を生成するときに再帰的に生成させない方法はありますか? <rule iscontainer="true">でコンテナを除外することはできますが、一階層まではコンテナも表示させるようにしたいのです。
設定ダイアログで同じドロップダウンメニューを使用するので、この部分のUIをまとめてオバーレイで適応したいのですが、可能なのでしょうか? 具体的には<menulist>タグには設定を拾うために固有のIDをつけるので、<menupopup>以下をオバーレイで適応できればと思っています。
IEのお気に入りからデータをインポートするために フォルダパスを取得したいのですがどうしたらできるでしょうか?
>>649 ttp://mb.eschew.org/16.php#table_16.14 var service = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties);
var path = service.get("Favs", Components.interfaces.nsIFile).path;
651 :
649 :2006/03/04(土) 22:02:01
>>650 うお〜マジでありがとうございます。
めちゃくちゃ助かりました。
ProfDとかは知ってたんですが、こんなに沢山あったんですね。
参考にさせてもらいます。
XULRunnerサンプルのMyBrowserで、画像を読み込まないように するには、どうすればいいの? advanced.always_load_images network.image.imageBehavior どっちも効かなかった。
permissions.default.image を 2 かな (see greprefs/all.js)
654 :
652 :2006/03/08(水) 21:33:57
browser要素のdocshell.allowImagesをfalseにする手は?
656 :
652 :2006/03/09(木) 08:25:50
657 :
デフォルトの名無しさん :2006/03/09(木) 23:35:58
Firefox のプラグインで驚いたこと: どう考えてもFirefoxの内部構造に入りまくったプログラミングなのに、 なんか、C++とかぜんぜん使ってなくって、全部JavaScriptっぽい。 ここで質問。 1、この解釈は正しい?それとも、もしかして、どこかでC++を使いまくり? 2、C++で書くことにより、よりFirefoxの内部構造に深く立ち入ったプラグインを作ることは可能?
658 :
デフォルトの名無しさん :2006/03/09(木) 23:40:01
追加: 3、プラグイン(エクステンション)のコーナーって、機種の表示がないんだけど、 プラグインはOSに依存しないの? 4、なぜか、JSはインタプリタなのに、 プラグインのロードのときに、セキュリティの危険の警告があるよね。 C++のEXEならわかるけど、なぜJSでこの警告?
>>657 プラグインじゃなくてエクステンションの話だとして回答.
1. 公開されているエクステンションのほとんどがXULとJavaScriptと
その他の素材(CSS,画像ファイル)で構成されています.
2.Firefox の内部構造に立ち入るだけならばXULとJavaScriptで
ほとんどできます.むしろFireFox内部に存在しない機能を実装したい
場合にはC++でXPCOMを書く必要がでてきます.
>>658 3. XULとJavaScriptで書いている分には処理系に依存しません
4. エクステンションの場合はHTML上で動くJavaScriptと異なりローカルPC
のリソースに自由にアクセスできます.ファイルを消したりするエクステンションも書けて
しまうのでEXEと同じだけ危険なものが書けます.これで警告が出なかったら変でしょ?
>>657 誤解するといけないから説明しとくと FireFox には C++ で書かれたコンポーネント
が一杯あってそれを JavaScript やXULから利用しています.FireFox組み込みの
コンポーネントの組合せで作れる範囲の処理ならOS依存のコードは必要ないってことです.
クンクン
こんなところにまでプラグインと呼ぶ人がくるようになったのか・・・ 窓の社の罪は重いな。
よくやったw > 社
Piro たんが釣れた!
browser要素のエラーハンドラを自前のやつに取り替える 方法ってあるの? connection refusedのダイアログが出るので困ってる。
search engine を javascript で変えるにはどうしたらいいでしょうか。 mouse gesture のカスタム機能を使って、 ジェスチャーによって検索するエンジンをかえてみたいんですが、 ジェスチャーでセレクションを検索するまではできたものの、 エンジンの種類を変える方法がわかりませんでした。
668 :
657 :2006/03/13(月) 21:58:04
>>659-661 わかりやすい解説、サンクス!。
なんか雰囲気は掴めたっぽい。
>>663 プラグイン = C++とかで書かれた外部プログラム。フラッシュとかアクロバットとか。
エクステンション = XUL/JavaScript で書かれたある種のマクロみたいなの。
・・・これでOK?
確かに、私も、「窓の杜」の「「Firefox」プラグイン特集」を読んでました。
すんまそん!。
669 :
657 :2006/03/13(月) 22:02:36
ひとつ質問: いまの個人的解釈だと、 1、Mozilla System (と呼んでいいのか?)とも呼べるものがある。 2、これは、XUL/JavaScript の実行環境で、XUL Runner とほぼ同じ。 3、その上で、重量級ブラウザスクリプトを走らせているのが Mozilla。 軽量ブラウザスクリプトを走らせると Firefox。 メーラスクリプトを走らせているのが ThunderBird。 ・・・なにが聞きたいかというと、 Thnderbird/Firefox/Mozilla は、専用コンポーネントを使っているのか、 それとも、XUL/JavaScript のみなのか、ということ。 とりわけ、Thunderbird に専用コンポーネントがないとすれば、 かなり驚きなんですが。 それって、ようは、ブラウザにカスタムマクロを突っ込めばメーラになるよ、ということなんで。
>>669 1は、一般的にはGeckoと呼ばれてる。
2と3は、まあそんな感じ。
GeckoはXUL/JavaScriptの実行環境だけど、C++で書かれた
DLLやなんか(=XPCOMコンポーネント)の機能も呼び出せる。
FirefoxやThunderbirdの固有の機能のいくつかは、JavaScriptではなく
あらかじめ用意されているXPCOMコンポーネントで実現されてる。
C++やJavaを使えば(JavaScriptでもできるけど)XPCOMコンポーネントを
自作することもできる。
Thunderbirdの機能に必要なXPCOMコンポーネントを持ってくれば、
理論上はFirefox上でもThunderbirdは動く。
大筋においては、
>それって、ようは、ブラウザにカスタムマクロを突っ込めばメーラになるよ、ということなんで。
は、まあ正解と言える。
>> 669 Firefox と Thunderbird 両方インストールして,入ってるDLLを 比べてみればすぐ mozMapi32.dll ってのが怪しいって解るんじゃない? ってことで Thunderbird はネイティブコンパイルされたメール操作用の コンポーネントを持っていてそれをXUL/JavaScriptから操作してる.
なんだかショッキングだ。 そういうトリッキーなことするのを見るとパフォーマンスが気になる。
何がトリッキーなのかワカラン
そんなこといってたら 抽象化されたデバイスを利用してる アプリケーション全部使えなくなるよ。
675 :
デフォルトの名無しさん :2006/03/17(金) 00:30:35
しまじろうに出てくるキャラのことだろ
セガの古いゲームのことだろ
それフリ(ry
679 :
デフォルトの名無しさん :2006/03/17(金) 10:58:06
firefoxのプラグイン開発の資料はどこにあるのでしょうか? また、参考になるサイトがあれば教えてください。
リファレンス的なものはないんじゃないかな? JavaScriptとかDOMとかCSSとかXPCOMとか必要知識が多岐にわたるから どうしても表面的なところをなぞった物になってしまうような。
FFのプラグインの作り方を教えてください。
そういわれるとキラウェアを思い出すけど、 多分この板でこの意味が分かる人はいない。
でも気軽に作れないってのは痛いよな。 「俺は作れるからいい」ってのは普及・発展を阻害してると思う。
それなら Gauche を使わないと
>>688 ご名答。
>>689 Mozillaとかなんかその辺の連中の思考回路はそんな感じに見えて仕方ない。
永久に普及しないし、自己満足なんだからいいんじゃね?
今でも十分気軽じゃないか。 学習のためのドキュメントは不足してると思うが。
英語でも無いのか? なら、儲けた数十億円使えば良いのに。 個人用に拡張ををちょこっと作るくらいなら、あまり困らなかったけど。 もっとも、最近は Greasemonkey のが多いな。
英語のドキュメントがあればOKってのは世間一般的には全然気軽じゃないんだよな。 そういうのを書くのがコード書くより面倒ってのは痛いほど分かるが。
日本語のドキュメントがあればOKな世間よりは広いお
いや、MJ に期待するのはアレだし、いきなりローカル言語に期待できないから。 こういうのは、訳を作ってくのが定石でしょ。 待ってたら何年先になるか分からないから、英語で慣れた方が(ry (以下ループ) まぁ、多くの人には気軽じゃないのは確かだねぇ。 > 本なんて英語の読めないやつ専用だろ。 原本買う人も多くね? 一長一短。
気軽に作れるって範囲は「Firefoxの改造テクニック!」で 大体カバーしてると思う。 入ってないのは Templete nsITreeView を使う Tree や list nsIHttpChannel などの Channel の使い方。 socket docShell 全般(部分的に入ってる) JS による xpcom component の作り方。 この辺だけど、全然気軽じゃないところだし。
拡張の権限で javascript をインタラクティブにテストできる 拡張ってないですか? emacs の lisp-interaction-mode みたいな。
699 :
http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 19:22:56
64bitに対応したトリップ検索プログラムありますか? TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
>>697 「気軽に作れる」ってのはドキュメントやリファレンス的なものだけじゃなくて、
開発環境が整ってないとかテストが面倒ってのも改善される必要があると思う。
701 :
657 :2006/03/18(土) 20:15:23
ハッハッハ!。 Firefox Hacks と、「改造テクニック!」、この二冊の手助けにより、 さらに理解が進んだぞ。 なんか、スゲェな、FF。 ひとつ質問。 FFって、ようは、XULインタプリタ+ブラウザスクリプト、ですよね。 これ、立ち上げのたびに全スクリプトを読み直してるんですか? ・中間コードのキャッシュ ・できればコンパイル とかの機能は、現に存在している、または開発計画は存在している、 ってことはないですかね。 XUL cache とかいうキーワードは見つかったけど、 具体的にそれが何なのかがわかりません。
XUL.mfl XPC.mfl とかあるけどね。
704 :
657 :2006/03/19(日) 16:30:09
ええっと、そのキャッシュファイルって、どこにあります? Linux/Windows 双方さがしたんですが見つかりません。 って、私の設定が悪いんですかね。
705 :
657 :2006/03/19(日) 16:50:45
あ、大ボケを。 Linuxにはあった。 $home/.mozilla/firefox/asdfwq3r.default/XUL.msadf これだね。 でも、Win32にはないなぁ。どこにあるんだろう。
ディフォルトなら C:\Documents and Settings\???\Local Settings\Application Data\Mozilla\Firefox\Profiles\???\ 辺りに んで、そのファイルをテケストエディタで開いて味噌
ちなみにLocal SettingsやApplication Dataに隠し属性が付いてるんで デフォルトではエクスプローラで表示されないし検索にも引っかからない。
初心者ですが、オライリーの「Firefox hacks」 っていう本は分かりやすいですか?
オライリー本は実は糞だという法則。 なんか自称上級者のステータスみたい になってるから読まない方がいい。
そんな法則ないよ。
Firefox hacksはオライリー本の中では比較的読みやすい方だと思うよ。 ただ、知識が少し古くなってるところもあるのでそこは注意が必要。
XULに関しての記述は少なかったような気が。
くそ、縦だったか。
715 :
デフォルトの名無しさん :2006/03/21(火) 23:08:06
画像の上でコンテキストメニュー呼び出したときだけ、メニューを表示させたいんだけど document.getElementById(id).hidden = !gContextMenu.onImage とか挟めばいいのかな? あと、挟むんだったら何処に挟めばいいんだろう… orz。 うぉ〜、なんでこんな文献少ないんだ…と愚痴る。
× 文献が少ない ○ 理解力が足りない
717 :
デフォルトの名無しさん :2006/03/22(水) 00:05:35
contentAreaContextMenuのonpopupshowingイベント
718 :
デフォルトの名無しさん :2006/03/22(水) 00:06:59
きっと文献を探すよりも似たようなことを実現させている拡張のソース見たりbrowser.jar見たりする方が効率よい。
だな。PGはソース読んでなんぼだ。
たとえば C-L でブックマークツールバーの表示をトグルさせたいのですが、 こういうときどうすればいいんですかね? pref.js に何かキー割り当てのようなものを書けばいいのでしょうか? それとも XUL をいじらないとできませんかね。
>720機能拡張KeyConfigを導入しる
>>721 ありがとうございます。すでに使っています。情報を出さずにすいませんでした。
それで、keyconfig は、pref.js に設定を書き込むことで、割り当てダイアログに
項目が出てくるようになりますよね?
user_pref("keyconfig.main.xxx_key__NAME", "!][][][FUNCTION");
上のような感じで書けばよいのだろうなぁ、というのはわかりましたが、
肝心のブックマークツールバーをどう書けばよいのかわかりません。
DOMインスペクタを使えばわかるのですか?
まあ、document.getElementById("PersonalToolbar")して collapsedをトグルするだけなんだけどね
keyconfigの設定画面開いて、新しいキーを追加。 名前は好きなのにして、/* CODE */の下に var pToolbar = document.getElementById("PersonalToolbar"); pToolbar.collapsed = !pToolbar.collapsed; と書く。んで、それにショートカットキーを割り当てるだけ。
>>726 できました!
う〜ん、すごいなぁ。どうしたらこんなの分かるんですか??魔法みたいだ。
まだまだたくさん勉強しないとダメだ〜
728 :
715 :2006/03/23(木) 23:44:13
>だな。PGはソース読んでなんぼだ。 一理ある。 なんか納得してしまったので、もう少し頑張ってみようかと。 俺が軟弱モノでした。
>>727 726じゃないけど、DOMインスペクタを活用するといいよ。
漏れも拡張作ってみたいと思って XULに挑戦してみたけど プログラミングに関する知識はゼロだったんで ソース読んでもちんぷんかんぷんだったけど とりあえず先人の書いた良質のソースを弄ってみて その中でわからないことが出てきたら XUL PlanetとかMozilla Cross Referenceで調べたりするうちに なんとなくjavascriptのオブジェクト指向も分かってきて そうこうするうちに拡張も作れるようになちゃって ついには窓の森のプラグイン特集に出ちゃったりみたいな。
そうなるまで何時間くらいかかった?
何そのサクセスストーリー
俺も最初は TabMixPlus とかメジャーなやつをほどいて
サイト見ながらいろいろいじってるうちにいつのまにか
わりと思い通りに書けるようになったな。
>>731 完全な素人なら、少なくとも1週間くらいはかかるんじゃね?
734 :
デフォルトの名無しさん :2006/03/24(金) 22:32:48
XULPlanet ってさ、リファレンスは充実してるんだけど、 サンプルコードがぜんぜんないじゃん。 Rapid Application Development with Mozilla も同じ形式。 もちろん、各種エクステンションのソースそれ自身がいいサンプルコードなんだけど、 MSDNとかのMFC/Win32あたりだと、API一個一個に、 リファレンスドキュメント+サンプルコード、といった形式になってるでしょ。 こういった感じの、サンプルコードばりばりの資料ってどっかにないかな、、、。 ちなみに、いまは、「改造テクニック」で勉強中。
言えてる。ちょっと初学者には厳しい世界かもしれない。 てか、XULは他の畑である程度腕に覚えのある連中が 手を出すものじゃないかと。
javascript は覚えたんだけど 肝心の firefox の内部構造がよくわかんないんだよな。
737 :
デフォルトの名無しさん :2006/03/24(金) 23:09:04
>735 Javaやらがそうだったように 新しいモノに飛び込んで、好きで弄り回した上で得たノウハウを 人に広めていくことで、技術って言うのは馴染んでいくモノだから マニア、ギーク、アーリーアダプタ名乗るなら ゆっくり陳腐化させていこうぜ …何年かかるか分からないけど
なんとなく拡張作ってみたいって感じじゃ良いものは作れないし 自分のスキルもなかなか伸びないけど 「どうしてもこの機能が欲しい!」というのが先にあって その欲望の実現に向かって努力するといいんじゃないかな ちょっと目標を高めに設定する方がいいね
動機はある程度不純な方が伸びやすいよな。 欲望とかに直結してると人間っては動く動くw
「勉強しよう」とか思ってるやつは 大して伸びないよな。 好きでいじってるレベルにならないと。
だが勉強しないやつよりは大分伸びるので問題無し
いや。大学にくればわかるが、勉強しようと思ってるだけの奴より 必要に迫られて勉強するやつの方があっさり身につけるし伸びる。 学生の程度の低い大学だとどうか知らんが。 勉強しようと思ってるだけでなかなか動かない奴ってのは 勉強しようと思う自分に酔ってることが結構ある。 本を買っても積んどくだけとかに似てる。
いるいるww 「俺は勉強してるんだぜ」オーラ満載のやつに限って たいしたことないんだよな。 むしろ、本来取れない授業とかにまでモグリで 出てるやつの方がよく分かってたりする。 好きこそものの上手なれって至言だよな。 プログラミングとか、まさにそうだと思う。JUST FOR FUN
でもその場しのぎだけで覚えると 伸び悩んだりするんだよね。 もちろん出来る奴はどうやろうともできるんだが。
できるやつは何をやっても できる ダメなやつは何をやっても ダメ
大学つーか院レベルだとな。 迫られなきゃやらんて、あんなのw
748 :
デフォルトの名無しさん :2006/03/26(日) 20:47:34
こんなことがしたいんですが、ヒントだけでも。 ------ < a href="c:/program files/myapp/run.bat" param=,,,> みたいなタグを作りたい。 ようは、HTMLからローカルアプリをラウンチさせる。 これだけなら、MIMEをいじればできるが、 問題はセキュリティ。 このタグは、 1、HTMLがローカルファイルの場合。 2、社内イントラにある場合。 3、特定の電子証明書が付いているサーバから送られてきた場合。 この三つの場合しか使えない。 ------- どーやってやるんでしょうか。 やれるかどうかだけでもかまいませんし、 ググるためのキーワード、参考になりそうなサンプルのURLとか あれば最高ですな。
749 :
デフォルトの名無しさん :2006/03/26(日) 20:49:00
なお、当方、Win32/MFC/SDK/C++ 、、、みたいなのは、キャリア10年ですので、 一通りわかります。 JavaScriptも、当然やりゃできるでしょ。 それこそ、うえの議論のように、必要があれば覚えられるでしょう。 なんで、「このサンプル見て勉強しろ!」とか、URL出してもらえれば、何とかなります。
プログラミング言語だけでなく、日本語も勉強しよう。
10年やっててもコミュニケーション能力と検索スキルは上がらなかったようですね
754 :
デフォルトの名無しさん :2006/03/26(日) 21:20:28
意地悪しないで教えてよ。
この程度なら中卒のオレでもググってるぜ
質問に回答しない五大理由 1. 知ってるがお前の態度が気に入らない 2. 知らない 3. 質問の意味がわからない 4. スレ違い 5. そのぐらい自分で調べろボケ
まずXULとどう関連があるのかわからない。
> JavaScriptも、当然やりゃできるでしょ。 ECMA Script だからって馬鹿にできないよな。 よくインタプリタを馬鹿にしてる奴が居るけど、 C のインタプリタだって存在するの知らないのかねぇ。 というか C++ 以外の奴って……言語になるのか?
XULと関係ないじゃん?
>>756 そんなかで3つも該当するってある意味すげーな
へたに10年とか自慢したのが痛かったな。 素直に下手に出てりゃよかったのに。
762 :
デフォルトの名無しさん :2006/03/26(日) 23:38:27
自慢してないですけど・・・。 ようは、HTMLもロクに書けない教えてクンじゃない、ってことです。 もうすこしは教えがいのある教えてクンです。 で、どうでもいいから教えて!。
むしろお前のことがどうでもいい
Win32のキャリア10年って結構凄くね? 俺なんて、ペイントブラシやマインスイーパで感動して、 壁紙変えたり、起動音とかEVAのにして悦に入ってた時期だw
そんなにキャリアがあれば、こんなのなんてことなさそうだけどな。
要は10年やってこのレベルって奴に教えるほど甘くないってこった
2chの質問ではちょっと自慢ぽいこと書いたらアウトだな。 本人にその気がなくても。
デバッグとテストどうやってる?Firefoxの一行コンソールに改行を抜いた 関数を突っ込んでテストしてるんだけど・・・ありえないって・・・
でも、卑屈さを見せると容赦なく馬鹿にしたレスが返る罠。
>>768 CMEのJavaScriptパネルとか
>>768 Venkmanはどうだろ
使ったことないけど
XULリファレンス引く→スクリプト書き直す→Firefox終了させる→Firefox起動させる→
実行してみる→バグ→XULリファレンス見直す→スクリプト書き直す→Firefox終了させる
→Firefox起動させる→実行してみる→XULリファレンス引く→Firefox終了させる→
Firefox起動させる・・・・・
ふおおおおおおおおおおおおおおおおおおお!!!!!
>>770 それはよく知らない。テストボタンを作って、テストする関数はまとめておいて
ボタンを押すと全てテストが走るという構想で今書いてみてるとこ・・・
>>771 デバッグにはいいかもしれない。使ったことないけど
本人にその気がなくて自慢ぽいこと言ってたら、リアルでもアウトだろ。 表面上はともかく、心の中では。
ContextMenu ExtensionsのJavaScriptパネルは、 でかいテキストボックスがあって、その中に書いたスクリプトが 「実行」ボタンを押すと実行されるという ただそれだけのものです。 browser.xulやbrowser.jsの中に書かれたスクリプトと同じ権限で 実行されるので、これでメソッドを再定義してテストしたり、 変数やプロパティや関数の内容をalertで表示したり クリップボードにコピーしたり、ということができる。 使いようによっては役立つかも。 というか自分はこれが無いと開発できないんですが。
作るしか!
そうだな。
>>773 あるあるww
表面上はとりつくろうけど、「はいこいつハブり決定〜」とか心の中で思ってる。
>>772 一々再起動させないでxulのキャッシュ切ったら良いんじゃないの?
自慢したら叩かれ、下手に出れば煽られる。 ほんと質問するのも一苦労だな。
>>779 これは知らなかったが超便利だ。お前なかなか詳しいな!!
再起動が必要なケースはskinやpropertiesファイルの変更 ウィンドウ開きなおしで済むケースはbrowser.xulへのオーバーレイ その他はwindowやdialogレベルで開きなおせば済む だいたいこんな感じだったと思うけど。
./ ;ヽ l _,,,,,,,,_,;;;;i <いいぞ ベイべー! l l''|~___;;、_y__ lミ;l 自慢する奴は厨房だ!! ゙l;| | `'",;_,i`'"|;i | 下手にでる奴はよく訓練された厨房だ!! ,r''i ヽ, '~rーj`c=/ ,/ ヽ ヽ`ー"/:: `ヽ / ゙ヽ  ̄、::::: ゙l, ホント 2ちゃんは地獄だぜ! フゥハハハーハァー |;/"⌒ヽ, \ ヽ: _l_ ri ri l l ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| | / | ゙l゙l, l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l | ヽ ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ /"ヽ 'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`" / ヽ ー──''''''""(;;) `゙,j" | | |
俺は自慢ぽいことリアルで言っても何も問題ないぜ。 実力が本当に伴っていればな。
リアルだと実力があるかないかの判断がつけやすい。 その他の言動とか、話し方とか実績とか判断材料が多くある。 文字だけだと虚勢にしか見えない。
空気読めなくても悪気がない奴とかは、 リアルではそんなにいやな奴でもないが、 文字面だけの世界ではDQNに指定される。
このままだと自慢することの無意味さをいかに知ってるか という自慢大会になりかねないのでそろそろ終わろうぜ
逆にできるヤツが謙虚すぎると、イヤミにしか見えない。
あるあるw 技術系のサイトでそういうの多いよな。 でもまぁ、こういうのって勉強すればするほど上には上にいるのが気づくもんだから、 そういう風になっちゃうのも仕方ないのかもね。
スレ違いの話題に食いついてる厨房はキエロ!春は本当にこれだから困る!
春だな厨もたいがいウザいがな。
cssで定義したスタイルってjavascript側からXULElement.style以下のプロパティて 取得できんのな・・・。できる前提で組んでたのでちょっと凹んだ・・・。
1.5.0.xならできなかったっけ。これは値の設定だけだったかな。 無理ならgetComputedStyleで値を取得するといいかと。
xulplanetが落ちると何も書けねーな
799 :
デフォルトの名無しさん :2006/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" # とかやるのは危険ってことですよね?
自分はオーバーレイするときは 変数とか関数の頭にその拡張の名前を付けるか オブジェクト指向っぽくやる
>799 JavaScriptのことを勉強すればその辺の事はよくわかると思うけど、 まあ大体あなたの言ってる通りです。
> 非オーバレイ xul から browser.js の関数が呼びたい こんなケースあるか? window.openerやnsIWindowMediatorのgetMostRecentWindow("navigator:browser")でbrowser.xulを探すべきじゃん?
何言ってるかさっぱりわかんね
俺もわかんね
あるサイトに接続するパスワードをユーザーに入力させて、何度もログインさせるのを 軽減するためにパスワードを保存しておくとしたら、どういう風にすれば安全なんでしょうか。 jsではプライベート変数を持てないようだし、悪意を持ったプログラムがパスワードを 抜こうとした場合、どういう風にすれば防げるのか悩んでます。
そんなことしようと思うのが間違ってるんじゃね?
>>805 最善の方法と言えるか分からないけど、
ユーザが正しいパスワードを入力したら、
有効期限のあるIDをサーバーサイドのプログラムから、
クライアントに発行したらいいと思うよ。
たとえばブラウザを閉じたら破棄されるように
ID(クッキーのこと)を発行すれば、
悪意を持ったプログラムによる
被害も少なく済むと思う。
最善の方法は保存しないことだ
最善の方法はパソコンを使わないことだ
質問です。 window.addEventListener("load", listner, true); でページ読み込み完了時にlistnerの処理を行いたいのですが、どうもこれだとレンダリング まで待たないらしく、一瞬でlistnerの処理を行ってしまいます。 レンダリングまで待機するにはどうすればいいんでしょうか?
具体的に何をしたいのかにもよると思うけど function listener(aEvent) { if (!(なんか条件)) { window.setTimeout(arguments.callee, 100, aEvent); return; } 本来の処理 } とかそんな感じ?
812 :
810 :2006/03/32(土) 20:02:57
ええと、特定URLの?id=というリクエスト変数を1ずつインクリメントしながらアクセス
していきたいんですが、
for(i=1; i <= maxUserID; i++)
{
jumpURL = '
http://example.com/?id= '+i;
window._content.document.location=jumpURL;
contentArea.addEventListener('load', listener, false);
}
function listener()
{
contentArea.removeEventListener('load', listener, false);
}
これだと目にもとまらぬ早さで次々とページが切り替わっていってしまい、ほぼDOS攻撃
状態になってしまいます。
んー、なんかもしかして俺、とんでもない勘違いしてる?
forループでやれば当然そうなる罠。
読み込み終わった時点で次のリクエストを発行しないと。
var base = '
http://example.com/?id= ';
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);
こんなんやってみましたが駄目でした……。
ページが読み込まれないです。
function connect(maxUserID)
{
var contentArea = document.getElementById("appcontent");
var base = '
http://example.com/?id= ';
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!');
}
}
変数のスコープとかJavaScriptの勉強をするといいと思うよ。
function connect(maxUserID)
{
var contentArea = document.getElementById("appcontent");
var base = '
http://example.com/?id= ';
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);
}
最後の部分、 contentArea.addEventListener('load', listener, true); listener(); } だった。 最初の1回は自分で読み込まないといかんね。すまん。
818 :
810 :2006/03/32(土) 22:27:25
あ、そういうことか、お恥ずかしい…… できました。どうもありがとうございます。
やっとxulplanetが復活したか・・・。長かった・・・。
何言ってるかさっぱりわかんね
めずらしくXULの話してるな
XULじゃなくてJavaScriptの話だと思う XULってXMLベースのUI記述するやつのことでしょ?
823 :
デフォルトの名無しさん :2006/04/02(日) 20:28:46
readでテキストの読み出し WriteTo関数でテキストの書き出しが出来るけど Cのfile( *fp, "a" ) に相当するような、テキストファイルの「追記」とかできないかな… なにかのログの保存の時、放置しているウチに記録が溜まってファイルサイズが10Mとか越えたとき怖いんだけど。
>>802 なるほど。たとえば、証明書ダイアログを呼び出したい、とかです。
browser.xul の window インスタンスに対して呼べばよさそうですね。
>>799 自分の知ってる知識だと、グローバル変数は window インスタンスの変数だったかな。
要するにマルチウインドウが前提になっている部分においては
グローバルじゃないってことですね。
>>825 調べれってことは漏れの解釈が間違ってるということか?
XULPlanetのWhat is XUL?を読む限りは漏れの解釈で間違ってないはずだが
tooltipで改行を入れたいんですが\nを入れても改行できません!
829 :
デフォルトの名無しさん :2006/04/02(日) 23:56:54
>824 サンキュ、今から試すけど、ほぼ目処が立ったです prio.hがなんたらとかxulPlanetのnsFileにあったけど、コレなんですね
bookmarks_history.sqliteの中身を覗きたいのですが、 sqlite.exeを使ってコマンドラインからsqlite bookmarks_history.sqliteとしても、それはデータベースではない、と怒られてしまいます。 誰か解決法をご存じないですか?
Creating XPCOM Componentsを読み終わったんで少しいじり始めた所 なんだけど、一つ質問させてくれ。 MOZILLA_STRICT_APIをプリプロセッサで定義するように書いてあるよね? これをやるとnsCOMPtr.hなしじゃnsISupportsUtils.hが読み飛ばされてしまって NS_DECL_ISUPPORTSが使えなくなってしまうような気がするんだ。 サンプルのWeblockだと全部一つのソースにまとめて書いてあるから 問題ないんだろうけど、これって何とかならないのかな? 「#ifndef MOZILLA_STRICT_API」があるヘッダーを使うときだけ、その前後で 定義して解除するようにするのが正解なんだろうか?
nsCOMPtr.hを外すなら、nsISupportsUtils.hなんていらんだろう。 そもそも、サポート系マクロは正式な"API"じゃない、ってことなんだから。 まあ、読みやすいのは確かだが。 私自身はマクロ派だけど、自分で書くソース(=Mozillaのソースに入ってない部分)は その手のマクロを使うべきじゃない、っていう意見もあって、 XPCOMのドキュメントも一部そういう論調で書かれている。
FirefoxでXMLRPCを使う時って、どうすればいいですか?
>>833 そうだったのか。楽すんなって言われても結構辛いなぁ。
実装クラスをヘッダーとソースに別けて書くときに、メンバにnsCOMPtrが無いのに
nsCOMPtr.hをヘッダーでインクルードしないといけないのが気持ち悪くてしょうがない。
今WebLock作ってるんだけど、SDKにnsIContentPolicy.hが無いorz
ググルさんに聞いたらlxrからidlだけ引っ張ってきてxpidlでヘッダーを
作ってる人がいたようだけれど、Firefox1.07ビルドした時に出来た
/mozilla/dist/include/content/nsIContentPolicy.hを
使ってしまっていいのかな?
>>835 それは、悩み方がおかしい。
nsISupportsUtils.hの中身を使うなら、
#include "nsCOMPtr.h"
とせずに、
#include "nsISupportsUtils.h"
にすればいいんじゃないかな。
厳密にいうとAPIじゃないというココロを理解していたら、
あとは堂々と使うだけ、でしょ?
現に必要なんだから、紛らわしくもなんともないし。
> nsIContentPolicy.h 現行は1.0.xのころと全く違うテーブル管理やってるから、 ヘッダファイル自体がビルド時に弾かれるけど、 同じバージョンのSDKとソースならOK。 そもそも、Gecko SDKってビルド時に出来たファイルから、 仕様が固まってる部分を寄せ集めただけだから。
>>836 目からうろこ。nsISupportsUtils.hって勝手に使ってよかったのか。
そこらへんのさじ具合から既にわからなかったよ。サンクス。
>>837 んなアバウトな代物だったのか・・・
ソースからビルドすればええんじゃね?
>>841 自分はそれでいいが、人に説明する時困る。
久々に弄ろうかと思ってググってみたら、 「XULPlanet 日本語版にようこそ」とか出てきて、和訳されたのかっ! と狂喜乱舞した。 数秒間だけの夢だった orz
ぶっちゃけ和訳イラネ。 英語でもきちんと整備されている方が良い。
和訳する人と本家に原文を上げる人は、 ほとんど別リソースだろうから関係なかろう。
Fx1.5.0.2をビルドしてもgecko-sdk-hoge.zipが出来ないのってデフォ? /dist/gecko-sdk/もできないし。/dist/sdk/を使っていいのかな? 1.07の時は両方勝手に出来た記憶があるんだけどなぁ。
連投スマソ。Fxのzipパッケージも Stripping package directory... でエラーになって作れないOTL。これのせいかな。
みんなどうやって開発してるの? メモ帳?
メモ帳ってUTF-8いけるんだっけ?
いける。
ぶっちゃけ置換が使えたらなんでもいい。 他の人と協力してやるなら、タブなし改行LFで揃えておくのが Mozilla周辺のスタンダードだけど。
>>847 > /dist/sdk/
がgecko-sdkです。
dist/sdkは非凍結済みのも入ってるよ
C++ で XPCOM を作ろうと思っています。 しかし、xpidl でヘッダーファイルを作ろうとすると、 「問題が発生したため、xpidl.exe を終了します。」と言われてしまいます。 プロパティやメソッドを空にした場合や、タイプライブラリは問題なく作れます。 原因や解決法をご存知の方がいらっしゃいましたら教えてください。
manifestファイルがないとかそれ系じゃないの?
>>855 バージョンと、実際に使った引数を晒さないと、なんとも言えないな。
>>858 set GECKO_SDK=C:\gecko-sdk
%GECKO_SDK%\bin\xpidl -m header -w -I %GECKO_SDK%\idl hoge.idl
これで普通に作成されたよ。 SDKをダウンロードしなおしてみたら?
860 :
デフォルトの名無しさん :2006/05/12(金) 18:31:59
cacheにアクセスするにはどうしたらよいのでしょうか?
ソース読め
彼氏の作り方を教えてください。
863 :
デフォルトの名無しさん :2006/05/13(土) 04:59:04
Firefoxのプラグインを作りたいのですが、何を学べばよいのでしょうか?
>>865 失礼ですが、あなたはイケメンのアグリゲーションインタフェースでしょうか?
イケメンかどうかは知らんがアーキテクチャはシングルスレッドモデルです
Firefoxの拡張でメーラみたいな3ペインは実現できない? bbs2chreaderでもやってないからできないのかな。
ScrapBookがサイドバー込みで3ペインを実現してるけど そういう話じゃなくて?
サイドバー+ブラウザタブで3ペイン可能だよ 多分サイドバーに板ツリー、ブラウザタブ内に上下2分割でスレリストとスレの内容、ということを想定しているんだろうけど、個人的にはいらないや。
ペインの数の増減や内容の割り当てを変更などが、拡張で可能なのだろうか。
とりあえず、Ez Sidebar が別ウィンドウに分離してるけど。
>>868 ちと話はズレるけど、RSS Reader Panel が、そういった計画を持ってた記憶があるから、
flyson 氏も、気にはしてるのではないのだろうか。
ちなみに、別の物で3ペインにしている 2ch ブラウザのスライドみたいのを見た記憶もある。
>>873 定期巡回で過疎スレばかり見るような場合だと、1スレあたり多くても数レスしか見ないから狭くてもいい。
次々に別のスレッドを開くからスレッド一覧の方にはすぐにアクセスしたい。
3ペインは要らない。むしろサイドバーにスレ一覧の方がいい
専用スレでやれ
navi2ch みたく、ワンストロークで一瞬でペイン数が切り替えられれば最高だけど。
878 :
デフォルトの名無しさん :2006/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を包含したね。
へえ。そう。
それはよかったね。
XAMLてLinuxで動いたっけ?
うん。
>878 転載元をちゃんと書けよ、と釣られてみる。
結論:XULオワタ
なんでいまさらXAMLの話で盛り上がってんの?
結論:Linuxオワタ
OpenGL叩きが出来なくなった糞窓厨が暴れてるんだろ。 こういうのはスルーしとけ。
893 :
デフォルトの名無しさん :2006/06/08(木) 21:34:13
Google作の拡張を覗いてみるとjsのソースがやたら見づらくなってるんだけど、わざとなのかな。
見てないが、Googleが書くjavascriptってのは一般にロードされる回数が ハンパじゃないから帯域節約のためじゃないの? HTMLとかもそうだし。 そのコード or 流儀をそのまま拡張にも使っているだけとかじゃないかな。 みづらいだけなら適当な整形かませばいいじゃん。 わざとやるなら暗号化した文字列を復号してevalくらいやるんじゃね。遅そうだけど。
895 :
デフォルトの名無しさん :2006/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をヲチするとばっちりみえるんだけども・・・
popupNodeがnullなんじゃね?
ファイルを削除せずにOSのごみ箱へ送ることはできますか?
くだらない電卓とか、しょぼいアプリしか作れないのに わざわざプログラムする意味あるの?
( ´∀`)σ)∀`)
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 :
デフォルトの名無しさん :2006/07/08(土) 02:01:29
自作したXPCOMコンポーネントから呼び出し元の Javascript中にある関数を呼び出す方法ってある? 言い換えるならコールバック関数を登録するようなモデルの実装法を聞きたい。
イベントリスナの登録とかその辺の処理をパクってみてはどうだろう
>>903 適当なリスナインターフェイスを XPIDL で作って JavaScript 側で実装したらどう?
XPCOM も JavaScript なら wrappedJSObject を使うのもいいかもね。
>>905 よほど特別な事情がある場合以外はnsIObserverにすべき。
遅くなってしまった。
>>904 あれ追跡しようもんなら6ヶ月計画になる悪寒が・・・
>>905-906 まだあまり試せてないけどそこら辺のキーワードでググったら
それっぽいことが書いてあったよ。休みに突入したらやってみる。
XULの開発環境作ったら寄付する。
なんでjava系に話がいくのかな。 どうせならXULRunnerアプリにすればいいのに。 いや、言ってみただけだよ。 本気にすんな。
XULアプリに特化したNvuみたいなのが欲しいのか?
XULやJavaScriptだけなら普通のエディタでも十分作れる。 でも、XBLはちょっと苦しいな。
>>909 thx.正直Ctrl+Fの力が足りなかった。すまん。
このスレに強いCtrl+Fを感じる
そのような発言に畏怖を覚える
if覚えたー!
nsIConsoleServiceでJSコンソールの「エラー」にメッセージを出力させることはできませんか?
これは? Components.classes["@mozilla.org/consoleservice;1"] .getService(Components.interfaces.nsIConsoleService) .logStringMessage("メッセージ");
それですと、メッセージのタブに出ますよね。 エラーのタブに出したいのです。
>>921 その方法でできました!
ありがとうございました。
つーかサンプルとかによく出てくるgBrowserとかmTabとかが何なのか良く分かりません! ググってもGoogle製ブラウザのウワサしか出てこないし…
925 :
924 :2006/08/27(日) 17:01:23
自己解決しました。 つーかみんなドキュメントないのにすごいなあ。
ソースコードがドキュメントです。
>>923 WindowsならC++XPCOMからWinAPI叩いてやればできるんじゃね
928 :
デフォルトの名無しさん :2006/08/27(日) 21:48:13
Webアプリで、HTMLのかわりにXULを使おうと思っているんですけど、 <form>や<input type="submit">のような感じでは使えず、 XmlHttpRequestを使うことになるのでしょうか。 XmlHttpRequestは便利なのですが、URLを切り替える方法がわからないので、 <form>や<input>のようには使えず、困っています。 なお<html:form>や<html:input>も使えるようですが、こうすると HTMLと同じになってXULの利点がなくなるので、あくまでXULのままで できる方法を教えてください。 よろしくお願いします。
<menuitem id="XXXX" label="YYYYYY" accesskey="W" oncommand="ZZZZZ()" image="chrome://ext-name/skin/rc.png" class="menuitem-iconic"/> でメニューアイテムに画像が張られないんだけど、 パスが間違ってるのかなあ…
>>930 それは確かダメで、代わりにCSS使えばいけるんじゃない?
menuitem#XXXX {
list-style-image: url(chrome://ext-name/skin/rc.png)
}
932 :
930 :2006/08/30(水) 08:39:31
skinフォルダにcontents.rdf置いて、image属性をsrc属性に書き換えたら出来たです。 自己解決すまそ。
すいません、一日悩みとおしたので相談します。
任意のURLの子ウィンドウを、内容を書き換えた上で開きたいんですけど、
aWin = window.open('
http://www.hoge.com ', '_blank', 'options');
aWin.addEventListener('load',aWin_rewrite, true);
としてもaWin_rewrite関数が呼び出されません。何故でしょうか。
(色々試しているとたまに呼ばれるんですが、再現性は低いのでよくわかりません)
XULではなくJavaScriptの質問スレへどうぞ。
ツールバーボタンがツールバー上に設置されてるかどうかの判別はどうすれば良いんでしょうか? 起動時に確認したいのですが・・・
>>935 ウィンドウのロード時にそのウィンドウについてdocument.getElementById("ボタンのID")を
チェックすりゃいいんじゃなかろうか。
自作のXPCOMをnew演算子でサクッとオブジェクト生成する方法ってありますか?
ラッパオブジェクトを作れば?
>>936 d
まさにその通りっすね・・・かなりテンパってた・・・
940 :
デフォルトの名無しさん :2006/09/05(火) 17:57:37
XPCOM使って,ソケット通信のクライアントをつくっています.
XULPLANETのコードをそのまま使って動作させたのですが,どうにも上手く動きません.
クライアントからサーバへのデータの送信は上手くいくのですが,
どうやらサーバからクライアントへのコールバックが上手くいってないようです.
誰か,解決法を知っていらっしゃる方がいましたら,ぜひ教えてください.
XULPLANET(ソケットのチュートリアル)〜問題のコードはページの後半にあります.
http://www.xulplanet.com/tutorials/mozsdk/sockets.php
941 :
940 :2006/09/07(木) 14:51:50
お騒がせしました.解決しました. サーバ側でreadLineメソッドで読み込んいたのですが, クライアント側で改行コードを入れておらず,反応していなかったようです.
942 :
923 :2006/09/08(金) 17:04:06
>>927 亀レス失礼・・・。
その、
「C++XPCOMからWinAPI叩く」方法がわからんわけですよ。
さらに、この場合、INPUT Form に新しい属性を作り、
その属性が、XPCOMに伝わらないとだめなんですが、
そのあたりのコーディングとか。
グッドサンプル、プリーズ!。
>>942 開発環境は整っているのか?
びるずらを参考に VC++ 2005 Express Edition で
mozilla をビルドすれば、環境は整う。
話はそれからです。
944 :
デフォルトの名無しさん :2006/09/10(日) 20:08:15
え?MozillaってVC++依存なのか!
自分でビルドすれば
>>944 MinGWでもビルドできるはずだけどそれなりに苦労すると思う
ようやくFx1.5でWebLockできた・・・・・・ 試行錯誤しているうちに知識が付いたんだか付かなかったんだかよくわからんね。
おめっとさん
950 :
デフォルトの名無しさん :2006/10/18(水) 00:06:42
ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん ひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさんひよこ名無しさん
user_pref("capability.principal.myapp.id","
http://www.example.com/ ");
user_pref("capability.principal.myapp.granted","UniversalXPConnect");
こんな感じでローカルファイルではなくて外部のURLにXPConnectの特権を与えることはできないのでしょうか?
954 :
デフォルトの名無しさん :2006/10/23(月) 21:58:21
2.0で全滅キター!
>>953 おお、まさにそれでした。
>>955 危険だけど、それを承知でやる分にゃいいんじゃないかな。
拡張機能の危険性とかを知らずにポンポンインストールするほうがよっぽど危険かと。
957 :
デフォルトの名無しさん :2006/10/24(火) 01:10:41
世間には、ダウンロードしたexeを実行する奴も居る位だしな。
何億人もいるよ
あれ? event.button の値が取れないんですけど... WinXP Firrefox2.0 警告: reference to undefined property e.button
イベントタイプは何? マウス関係のイベントじゃなかったら取れないよ
なんか解ったような気がする コンテキストメニューからだと event.button はセットされない てことかな やり始めたはいいけど解んないことだらけだ、くじけそう
ああ違った... oncommand じゃダメで onclick ならOKてことか
964 :
デフォルトの名無しさん :2006/11/07(火) 20:26:26
「ブックマーク」みたいにメニューのボタン押したらツールが現れるのってどうやったらいいの?
popup
966 :
デフォルトの名無しさん :2006/11/12(日) 22:21:53
>>965 マージポイントは?
ゴメン俺教えて君だな。
XULで、Webアプリではなくスタンドアローンのアプリをつくたいと考えています。 application.xulという単体ファイルで、データを入力してCSVで保存するようなアプリケーションです。 で質問ですが、スタンドアローンのアプリの場合、ローカルファイルの読み書きはできますか。 できればC++とか使うのなしで。 ファイル選択ダイアログとかもあれば教えてください。
Firefoxができてることは大抵、JSだけでできるよ。 ファイルの読み書きもファイル選択も。 とりあえずXUL Planetのチュートリアルあたりから 実際に試してみてはどうかな。
970 :
969 :2006/11/16(木) 21:01:12
Mozillaってブラウザである同時に開発環境なんですねっ! 小生は今モーレツに感動していますっ!
コンパクト、カスタマイズ性を謳っているFirefoxですが SeaMonkeyと比較するとFirefoxのほうがページの読み込みが遅いです。 ソースコードが複雑になっていたことや重量化していたMozillaを きっかけとしてFirefoxが生まれたと記憶してますが 1.5も2.0もTrunkも新規プロファイルで試していますが UIやページの速度が上がっているとは感じられません。 拡張やテーマの量は豊富だと思いますが なぜきっかけであったSeamonkeyにパフォーマンスで負けてるんでしょうか・・・。
ここで言われても・・・
XPCOMからchromeにアクセスできないものか。
ワロタ
携帯風アプリをXULで実現するための構造を考えています。 簡単な例として、次の2つの画面を別々のxulでpageタグで 定義し、それをwindow内のbrowserでロードしています。 【画面1】 件名 [ textbox(readonly) ] +------------------------+ | textbox(readonly) | | | | | +------------------------+ 【画面2】 +------------------------+ | 件名 | +------------------------+ | textbox | | | +------------------------+
979 :
978 :2006/11/22(水) 02:19:14
画面1の件名のtextboxでのEnterキー入力で画面2に遷移 する場合は、C++コンポーネントのstatic変数を介して、 画面2のtextboxに文字列を設定することができました。 (もっといい方法があるかもしれませんが…) 次に、画面2のtextbox上でのEnterキー入力で、history. back()で画面1に戻るようにしたいのですが、画面1の textboxに反映させる方法が分かりません。 deckやwizardを使えば何とかなるかもしれませんが、実際の 画面遷移はより複雑なので、browserが適切なのではないかと 考えました。 適切なアドバイスをいただけると助かります。
1つのXULに両方の画面入れて、hidden属性切り替えとかは?
history.back()を使わずに、新規に画面1をロードすればいいじゃん まかりなりにもページ間の値の受け渡しはできてるわけでしょ? 画面1→画面2ができて画面2→画面1ができない道理がない
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 :2006/11/22(水) 22:10:15
nsIChannelには r e a d o n l y attribute nsIURI URI; って書いてあるじゃん。
984 :
978 :2006/11/23(木) 02:24:07
アドバイスありがとうございます。
>>980 実際にはもっと多くの画面があるので、できれば
随時読み込みにしたかったのですが、やはりそう
なりますかね。
>>981 新規にロードすると、historyに追加されますし、
画面1を復元するための管理が複雑になってしまうと
考えました。
>>980 案に近いのですが、wizardを使う方向で
考えてみます。
というか、wizardpageのようにpageshowがあれば、
wizardを使わなくても実現できそうなんですが…
(^-^)
986 :
981 :2006/11/23(木) 08:20:11
そもそもなんでそんなに煩雑になるの? 起動時に情報管理用のオブジェクトを作ればいいだけだと思う get(key), set(key, value), clear()あたりのAPIがあればOKでそ?
987 :
978 :2006/11/23(木) 23:39:33
>>986 最初に書いたtextboxに反映する方法さえあれば、履歴を戻るという発想は
自然ではありませんか?
それが無理だという前提であれば、おっしゃっていることは尤もだと思います。
988 :
986 :2006/11/24(金) 05:13:48
無理じゃないかも知んないけれどWebアプリと同様に考えるなら
あまりお勧めじゃないんじゃないか?
単にブラウザにHTMLの代わりにXULを表示しているだけなんでしょ
履歴を戻した時にonloadイベントが起こるなら
そのタイミングでできるかもね
まあそれはそうと
>>986 のようなものをつくらなくても
XULのブラウザにはこの機能がついてるんだね
あとヒストリーも切ることができるみたいよ
つまり
>>984 で書いたような懸念は標準機能で解決できそうだが?
ところで次スレの名前ってこのままでいいよね。
テンプレは
>>2 にMDCとXULPlanetあたり入れとく?
いいと思うよ
ume
\e
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。