Mozillaでプログラミング(XUL)at TECH
Mozillaでプログラミング(XUL) - 暇つぶし2ch770:デフォルトの名無しさん
04/07/09 12:49
>>768
色々試してみたところ、ファイル名の拡張子がxblでは動かないようです。
xmlにすれば動きました。
私がこのチュートリアルをやってた頃はxblで問題なかったんですがねぇ。

XULPlanetのリファレンスはわりと頻繁に更新されていますが、
チュートリアルの方はMozilla1.0のころから更新されていないようです。
それをさらに和訳してあるわけですから、例が現実に追いついてないのも
仕方のないことなのでしょう。

771:デフォルトの名無しさん
04/07/09 16:22
>>770
うほほーー!xmlにしたら無事に出来ました!サンクスです。

772:デフォルトの名無しさん
04/07/09 20:01
>>757
こんなんどうでしょうか?
URLリンク(forums.mozillazine.org)

773:デフォルトの名無しさん
04/07/09 20:42
URLリンク(www.mozilla.gr.jp)
これのコピーもっている人くれ

774:デフォルトの名無しさん
04/07/09 21:31
>>773
φ( ゜゜)ノ ゜
URLリンク(web.archive.org)


775:デフォルトの名無しさん
04/07/09 22:01
>>733
が言ってるのはサイトじゃなくてxpiのことじゃない?

776:773
04/07/10 13:38
>>774
xpiダウソできました。
ありがとうございました。

777:デフォルトの名無しさん
04/07/11 02:57
スクロールバーの付いたbox要素などでもマウスホイールが効くようにはできますでしょうか?

778:plus7 ◆XULQA16CSE
04/07/11 03:12
>>777
URLリンク(white.sakura.ne.jp)
かな?

779:デフォルトの名無しさん
04/07/11 03:16
>>778
まさにそれです!しかしかなり難しそうなのであきらめまつ...

780:デフォルトの名無しさん
04/07/11 06:41
>>779
そんな難しくないと思いますよ。
>>766の例の状況で示すと、こんな感じでしょうか。動作確認はしてませんが。

XUL (example.xul):

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://example/common/example.css" type="text/css"?>
<window xmlns="URLリンク(www.mozilla.org)">
<box class="scrollbox"/>
</window>


CSS (example.css):

box.scrollbox {
-moz-binding: url('chrome://example/content/example.xml#scrollbox');
}
box.scrollbox scrollbar {
-moz-binding: url('chrome://example/content/example.xml#scrollbar');
}




781:デフォルトの名無しさん
04/07/11 06:42
つづき。

XBL (example.xml):

<?xml version="1.0"?>
<bindings xmlns="URLリンク(www.mozilla.org)"
xmlns:xul="URLリンク(www.mozilla.org)">
<binding id="scrollbox">
<implementation>
<handler event="DOMMouseScroll"><![CDATA[
var count = event.detail > 0 ? 50 : -50 ;
this.mScrollbar.setAttribute('curpos', Math.min(Math.max(0, Number(this.mScrollbar.getAttribute('curpos'))+count), Number(this.mScrollbar.getAttribute('maxpos'))));
]]></handler>
</implementation>
</binding>
<binding id="scrollbar" extends="chrome://global/content/bindings/scrollbar.xml#scrollbar">
<implementation>
<constructor><![CDATA[
if (navigator.platform.indexOf('Mac') != -1) this.initScrollbar();
this.parentNode.mScrollbar = this;
]]></constructor>
</implementation>
</binding>
</bindings>

TBEの /content/tabextensions/scrollableTabBar.xml も参考にしてみて下さい。


782:デフォルトの名無しさん
04/07/11 06:43
すみません。
<?xml-stylesheet href="chrome://example/common/example.css" type="text/css"?>
じゃなくて
<?xml-stylesheet href="chrome://example/content/example.css" type="text/css"?>
ですね。

あと、水平スクロールバーと垂直スクロールバーのそれぞれについて
処理を振り分けるのも忘れてました。まあその辺は適当に。


783:名無しさん@そうだ選挙に行こう
04/07/11 07:36
もう一つミスが……

<implementation>
<handler event="DOMMouseScroll">(略)</handler>
</implementation>

ここは
<implementation>~</implementation>
ではなくて
<handlers>~</handlers>
です。

784:名無しさん@そうだ選挙に行こう
04/07/11 09:10
解説も含めてまとめときました。もしよろしければどうぞ。
URLリンク(white.sakura.ne.jp)


785:名無しさん@そうだ選挙に行こう
04/07/11 14:44
>>780-784
丁寧にありがとうございます!さっそく今試してみます。
このスレは親切な方が多くて助かります。

786:名無しさん@そうだ選挙に行こう
04/07/11 14:53
window内にiframeがあるようなxulページを表示させると、
windowのonloadイベントが二度発生しますが、これはなぜなんでしょう??
たとえば下のコードを表示させると、alertウィンドウが二度出てきます。
環境:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040614 Firefox/0.9

<?xml version="1.0"?>

<window xmlns="URLリンク(www.mozilla.org)" onload="alert('onload');">
<iframe />
</window>


787:名無しさん@そうだ選挙に行こう
04/07/11 16:06
>>786
iframe内のページのonloadイベントがバブリングで伝搬するからですな。
URLリンク(www2u.biglobe.ne.jp)


788:名無しさん@そうだ選挙に行こう
04/07/11 20:00
プロパゲーションが止められないのって、
実は結構不便な気もするな。

こんな感じでイベントハンドラを書けば済むのだが。
function myOnLoad(event){
 if(event.target.localName=="window")
  alert('onload');
}

789:デフォルトの名無しさん
04/07/11 20:34
イベントバブルで制御できるんでは

790:786
04/07/12 13:23
>>787-789
なるほど、なぞがわかってすっきりしました。

791:デフォルトの名無しさん
04/07/17 09:59
preventBubbleって、そんなに便利でもないんだよなぁ。
一つのイベントに複数のリスナがある時とか。

792:デフォルトの名無しさん
04/07/21 00:47
ローカルに保存されたHTMLファイルを読み込み、パースしてDOMとして利用することは可能でしょうか??

var doc = (new DOMParser()).parseFromString(fileContent, "text/html");
alert(doc.title);

とやってみたのですが、1行目でエラーとなります...

793:デフォルトの名無しさん
04/07/21 03:54
>>792
実はdomparserのtext/htmlモードは未実装なのです。
かわりに、innerHTMLを使ってください。

794:デフォルトの名無しさん
04/07/21 03:58
あるいは、>>650とか。

795:デフォルトの名無しさん
04/07/21 23:11
var URI = "URLリンク(jt.mozilla.gr.jp)";
var doc = document.implementation.createDocument('', '', null);
doc.load(URI);
doc.addEventListener('load', docLoaded, false);

function docLoaded() {
alert(doc.title);
}

これでは何も表示されませんですけど、何か間違っているようですね。。

796:デフォルトの名無しさん
04/07/22 03:07
>>795
mozilla 1.6 で試してみたけど…
doc.async = false;
var result = doc.load(URI);
alert(result);
してみると doc.load(URI) が false が返してくるみたいね… なんでだろ??

XUL内に不可視のbrowser要素を配置してそこにloadURI()で読み込んだら
だめかな?

797:デフォルトの名無しさん
04/07/22 05:48
>>795
ありがちなミスだけど、ひょっとして、XULでやってる?
createDocumentのnamespaceを無指定にすると、実行環境に影響されるから、
HTMLDocumentではなく、XULDocumentになって、htmlファイルをロードできない。

798:デフォルトの名無しさん
04/07/23 19:47
>>796
hidden=trueなbrowserに対してloadURIでHTMLをロードさせたら
Type Error: this.docShell has no properties
と怒られました。

>>797
なるほど、確かにXULでやってました。

799:デフォルトの名無しさん
04/07/23 22:08
>>798
hidden="true" (displaynone)だと初期化がされないので注意が必要。
collapsed="true" (visibility:collapse)なら動くはず。

800:デフォルトの名無しさん
04/07/23 23:06
>>799
なるほど、それでうまくいきました。

801:デフォルトの名無しさん
04/07/24 03:17
>>797

>createDocumentのnamespaceを無指定にすると、
ってことは正しい(?)指定をするとXULでもHTMLDocumentが返ってくる
ようになるんでしょうか?

802:デフォルトの名無しさん
04/07/24 20:08
>>801
いろいろ探してみたけど、HTMLDocumentを作るのって意外に難しい。
doctypeを決め打ちしてしまうと本末転倒だから、やっぱ無理かも。
xhtmlならとても簡単なのに、この差は一体…

803:デフォルトの名無しさん
04/07/29 15:45
XULアプリ内で mozilla と firefox を区別する方法ってないですかね??

804:デフォルトの名無しさん
04/07/29 22:48
>>803
browser.jarのあるなしを見るとか、

function browserURI()
{
var handler = Components.classes['@mozilla.org/commandlinehandler/general-startup;1?type=browser'].getService(Components.interfaces.nsICmdLineHandler);
var uri = handler.chromeUrlForTask;
if (uri.charAt(uri.length-1) == '/')
uri = uri.replace(/chrome:\/\/([^\/]+)\/content\//, 'chrome://$1/content/$1.xul');
return uri;
}
でchrome://browser/content/browser.xulが帰ってくるかどうかを調べるとか。


805:デフォルトの名無しさん
04/07/29 23:01
piro氏のTBEはインスコ時に判定しとくって手を使ってるみたいね

806:デフォルトの名無しさん
04/07/30 02:57
インスコ時はbrowser.jarを見て、
インストール後の動作では>804の後者の方法を使ってます。


807:デフォルトの名無しさん
04/07/30 14:48
>>803
firefox 0.9以上なら新しいEM用なのか
about:configのapp:idにFirefoxのGUIDが書き込まれてます
インストール後なら、これを見て判断するというのはどうでしょう?

808:デフォルトの名無しさん
04/08/06 16:41
fileスキームのURIで示されたローカルファイルを削除する方法はありませんか?
たとえばfile:///C:/foo/bar.jpgだったり、file:///home/nanashi/bar.jpgだったり、
OSに依存しない方法があればいいのですが。

809:デフォルトの名無しさん
04/08/06 17:34
jslib使うとかそこからコードをぱくるとか

810:デフォルトの名無しさん
04/08/06 17:39
ってかただaFile.remove(true)でいいっぽい

811:デフォルトの名無しさん
04/08/06 18:54
ファイルのURIからnsIFileは作れないようです。
var aFile = Components.classes['@mozilla.org/file/local;1']
.createInstance(Components.interfaces.nsILocalFile);
aFile.initWithPath("file:///C:/foo/bar.jpg");

で、パスが認識できないと怒られます。

812:デフォルトの名無しさん
04/08/06 19:01
>>811
URLリンク(white.sakura.ne.jp)


813:デフォルトの名無しさん
04/08/06 19:17
>>812
ああ、まさにそちらに書いてあるとおりのことでした!
ありがとうございました。

814:デフォルトの名無しさん
04/08/08 02:24
で、だれか
URLリンク(www.unixuser.jp)
買ってないの?

815:デフォルトの名無しさん
04/08/08 02:51
仲村直人って意外な趣味持ってるんだな。
URLリンク(www.jbl.or.jp)


816:デフォルトの名無しさん
04/08/08 02:54
見事に同姓同名だな

817:デフォルトの名無しさん
04/08/14 12:13
URLリンク(nazo.europe.webmatrixhosting.net)

818:デフォルトの名無しさん
04/08/20 16:24
保守

819:デフォルトの名無しさん
04/08/23 04:32
現在フォーカスしているブラウザタブのアイコン(いわゆるfavicon)のURLを得る方法を模索しています。
top.window.document.getElementById("page-proxy-favicon").src
でとりあえずそれらしいものは得られるのですが…

820:デフォルトの名無しさん
04/08/23 13:14
>>819
gBrowser.selectedTab.getAttribute('image')でどうでしょう。
空以外ならfaviconと判断できそうな。


821:819
04/08/23 19:07
>>820
それでばっちりでした。どうもありがとうございました。

822:デフォルトの名無しさん
04/08/31 21:44
a.xulからopenDialog('b.xul')でダイアログを開き、そこでの入力結果をa.xulに返す
というかb.xulでの入力結果をa.xulで受け取る方法はありますでしょうか?

ただの文字列を入力させるだけなら、a.xulでvar input = prompt(...)で入力を受け取れますが、
今回はユーザに入力させたい項目が複数あるという状況であります。

823:デフォルトの名無しさん
04/08/31 22:14
>>822
b.xul から window.opener で a.xul にアクセスできるようだ。

使用例(JavaScript の詳細設定ダイアログ):
URLリンク(lxr.mozilla.org)

824:デフォルトの名無しさん
04/08/31 22:18
>>823
今試してできました。見事に簡単ですね!

825:デフォルトの名無しさん
04/08/31 22:18
>>822
openDialogは4番目以降の引数に任意のものを渡せます。
オブジェクトを渡せば処理結果を得ることもできます。

//a.xul
var obj = {};
window.openDialog('b.xul', '_blank', 'chrome,dialog,modal', obj);
alert(obj.result);

//b.xul
<dialog onaccept="window.arguments[0].result = document.getElemenntById('input').value; window.close()">
<textbox id="input"/>
</dialog>

モーダルダイアログにしないと処理結果を返す前にa.xulの処理が先に進んでしまうので注意。


826:デフォルトの名無しさん
04/08/31 22:30
//a.xul
var input = {};
window.openDialog('b.xul',...);

//b.xul
<dialog onaccept="window.opener.input.hoge = ...">

と書きましたが825さんの書き方もいいですね。

827:デフォルトの名無しさん
04/09/01 19:56
初めまして。
「ブラウジングの際に次ページをポップアップ表示する」という機能を作成しようとしています。
そこで質問なのですが、createElementNS()で作成したウインドウ(例えばAltポップアップのようなもの)の中に
Webページを表示することは可能でしょうか?
Elementをポップアップするより、window.openしちゃったほうがいいのかなぁ・・・


828:デフォルトの名無しさん
04/09/01 20:42
URLリンク(patsis.edula.com)
このLink Previewという拡張が似てますが、これはOpen Thumbshotsのサムネイル画像を
表示させているみたいです。ごく一部のサイトしかサムネイルが表示されません。
XUL側でWebページのサムネイル画像を作れたらいいですけど、ちょっと無理そうですね。

829:デフォルトの名無しさん
04/09/02 00:56
>>827,828
<button tooltip="hogetip" label="hoge" />
<tooltip id="hogetip"><iframe src="about:mozilla" /></tooltip>
とやってやれば、別ページをポップアップ表示することは"一応"できるようだが、
サムネイルを作る方法 or ページ表示を縮小する方法を知らないので教えられない。


830:デフォルトの名無しさん
04/09/02 01:49
URLリンク(multiscroll.mozdev.org)
これの縮小表示機能が参考になるかも

831:デフォルトの名無しさん
04/09/02 11:32
>>828, >>829, >>830
ありがとうございます! 参考にさせていただきます!

>>828の拡張は画像で表示するんですよね。
ポップアップしたページからまたポップアップ……と階層的に表示したいと考えているので確かにそれだと無理そうです。

>>830のようにページ表示を縮小する方向で作ってみることにします。


832:デフォルトの名無しさん
04/09/02 20:56
overlayで存続の要素を削除できますか?

833:デフォルトの名無しさん
04/09/04 19:22
>>832
存続の要素って?

834:デフォルトの名無しさん
04/09/04 20:17
既存の間違い?

835:デフォルトの名無しさん
04/09/04 21:07
>>834
そうです。
結局styleでdisplay:noneにして解決しました。

836:デフォルトの名無しさん
04/09/05 20:43
拡張でstyleを指定するのは、あまりよろしくない。
hiddenプロパティの方がいい。

837:デフォルトの名無しさん
04/09/05 21:11
xul.cssには

*[hidden="true"] { display: none; }

と書いてあるんだけどね。


838:デフォルトの名無しさん
04/09/06 12:38
>>837
そういう問題ではない。

839:デフォルトの名無しさん
04/09/06 17:47
>>836
何故でしょうか?
stylesheetをオーバーレイさせて、ほぼ一意性があるようにセレクタを設定しました。
そこを追加・削除できる拡張とバッティングするはずですが、hiddenプロパティーでも同じはずなので一番いいのはDOMで要素ごと削除だと思いますが、ちょっとめんどくさい…

#日本語って難しい

840:デフォルトの名無しさん
04/09/07 00:53
ほぼ一意性があると思ってるんならそれでいいんじゃない?
DOMで要素を削除するのはやめた方がいい。

841:デフォルトの名無しさん
04/09/07 22:40
0.9対応の拡張を1.0対応にさせるにあたって、変更すべきところは
install.rdfの対応バージョンのところだけでしょうか。

842:デフォルトの名無しさん
04/09/08 03:25
ローカルファイルの変更を監視してイベントを発せさせるようなことはできますか?

843:デフォルトの名無しさん
04/09/10 18:18:23
>>802
いまのところ、URLからHTMLDocumentオブジェクトを作るのはできないのでしょうか?
browser要素などを隠してdocumentを得るのはダサいですよね。
HTMLDocumentからanchorエレメントを得て先読みするものを作りたいのですが
何かいい方法内でしょうか?
あと、DOMImplementationのcreateDocumentからHTMLDocumentが返ってくることって
あるんですかねぇ。
XMLDocumentだとできるようだが・・・。

844:デフォルトの名無しさん
04/09/12 08:34:30
>>828-829
サムネイルを作るというかスクリーンキャプチャ撮影のインターフェースならあるようなのですが、
実装はされていないようですね。

URLリンク(xulplanet.com)

845:デフォルトの名無しさん
04/09/14 13:43:31
>>795-802, >>843
nsIDocumentLoaderFactory というのを発見したので、試しに
Components.classes["@mozilla.org/content-viewer-factory/view;1?type=text/html"]
を呼んでみたが、実装されていないのか動かない。

846:845
04/09/16 01:38:45
Components.classes["@mozilla.org/content/document-loader-factory;1"].createInstance(Components.interfaces.nsIDocumentLoaderFactory)
はきちんと返しているみたいだけれども、
nsIDocumentLoaderFactory::createBlankDocument(in nsILoadGroup, out retval nsISomething);
の引数である nsILoadGroup の扱い方がわからなかった。

847:845
04/09/16 01:48:58
開きなおって、webShell から作ってしまうことにしたら HTMLDocument が得られるm模様。すなわち:

var webnavi = Components.classes["@mozilla.org/webshell;1"]
.createInstance(Components.interfaces.nsIWebNavigation);
webnavi.loadURI("about:blank", 0, null, null, null);
webnavi.document;

を JavaScript Console に投げ込むと、[object HTMLDocument] が手に入れられた。

>>353
こういうのをまとめる Wiki みたいのがあると便利だな...

848:デフォルトの名無しさん
04/09/16 22:34:16
>>847
Firefoxまとめサイトにそういうページを作ればいいのでは?
wikiの乱立はやめてほしい

849:デフォルトの名無しさん
04/09/19 12:26:13
あまり知られてないけど、mozilla.orgにもwikiあるんだよね。
URLリンク(wiki.mozilla.org)

850:デフォルトの名無しさん
04/09/20 12:14:34
>>847
確かに返ってきますね。
でも、loadURIでuriを指定してもダウンロードはしている様だけど
中身が入ってないっぽい?

851:デフォルトの名無しさん
04/09/20 13:37:13
timerかlistener使って読み込み待ちすればいいのでは?

852:デフォルトの名無しさん
04/09/20 18:18:47
SOAPのネストができないorz
SOAP_PROPERTYBAG_REQUIRED: When encoding as a struct, an object with properties is required
とかいわれる
idlist=new Array();
idlist[0]=new SOAPParameter("text","id");
idlist[1]=new SOAPParameter("text2","id");;
params[0]=new SOAPParameter(idlist,"IDList");

どうすればいいでしょうか?

853:852
04/09/20 19:01:14
ってかwsdl使えるのね
どっか解説サイトないかなぁ

854:852
04/09/20 20:32:52
やっとできた

idlist={
id:"text"
id:"text2"
}

855:デフォルトの名無しさん
04/09/20 22:22:45
ってだめだ
名前空間のの設定ができねぇorz

856:デフォルトの名無しさん
04/09/25 02:44:57
Firefox1.0PR での話なのですが、
URLリンク(www.mozilla.gr.jp)
この通りに installed-chrome.txt を記述しても、
chrome.rdf に書き込まれず、xul が追加できません。
理由が解る人が居らっしゃたら、御教え願えないでしょうか?

……install.rdf を作って、xpiでインストールするしか無いのかなぁ。

857:デフォルトの名無しさん
04/09/25 03:32:18
>>856
URLリンク(fls.moo.jp)
こっちを見た方がいいかも

858:856
04/09/25 04:09:11
>>857
おおっ、ありがとう。
試してみます。

859:デフォルトの名無しさん
04/09/30 00:08:22
Firefoxに自作の機能拡張入れてみたんだが
localeのja-JPのリソースが使用されないんですが何か設定いりますか?

自作のが駄目で、メジャーなのをいくつか入れてみたけど全部en-USのが使われました。
Firefox自体は通常インストールで何もいじっていません。


860:デフォルトの名無しさん
04/09/30 01:06:09
Firefoxのバージョンは?JLP組み込み済みの日本語版をインストールしたなら、
URLリンク(firefox.geckodev.org)

861:デフォルトの名無しさん
04/09/30 04:00:00
>>860
ありがとうございます。
ずばりそれでした。

↓も参照しました。
URLリンク(moz.skillup.jp)

本体側の問題のようですね、1.0の時には直っていて欲しいものです。

862:デフォルトの名無しさん
04/10/01 03:55:10
Javaから使えるXUL処理系を探していて、
URLリンク(luxor-xul.sourceforge.net)
というのを見つけたんだけど、使ったことのある人いる?

URLリンク(www.javadesktop.org)
なんて言われていたりもするんで、どうなのかなーと思ったんだけど。


863:デフォルトの名無しさん
04/10/01 04:11:22
luxorのXULはMozillaのXULと違う所が結構あると聞いたことがある気がする

864:デフォルトの名無しさん
04/10/05 21:08:37
URLリンク(www.neowin.net)
読んで、XULRunner やる気みたいだけど実際やってんのかなぁ、と思って LXR 見たら
URLリンク(lxr.mozilla.org)
あったよ。2,3 ヶ月したらバイナリでてくるかな?

865:デフォルトの名無しさん
04/10/06 18:59:36
>>863
結構ある、どころか全くの別物だよ。
とりあえず、このスレのXULとは何の関係もない。

866:デフォルトの名無しさん
04/10/07 00:28:26
質問です。template の構築が終了したタイミングをとるはどうやったらいいのでしょうか。
template で listbox を構築した後で、任意の要素を選択したいのです。今、↓のようにtemplate のビルドを完了したイベントを入手して処理しているのですが、しばしばビルド完成前に didRebuild が呼ばれるようで、うまくいきません。
oListbox.addListener({
didRebuild : function(aBuilder){
oListBox.selectedIndex = 1;//例えば最初のアイテムを選択してみる
},
willRebuild : function(aBuilder){},
QueryInterface : function(aIID){
if(aIID.equals(Components.interfaces.nsIXULBuilderListener)
aIID.equals(Components.interfaces.nsISupports)) return this;
throw Components.results.NS_NOINTERFACE;
}
});

867:866
04/10/07 00:30:41
訂正:oListbox.addListener(... じゃなくて oListbox.builder.addListener でした。
URLリンク(www.xulplanet.com)

868:デフォルトの名無しさん
04/10/08 19:54:15
拡張の更新確認用のrdfの書き方についてお尋ねします。

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="URLリンク(www.w3.org)"
xmlns:em="URLリンク(www.mozilla.org)">

<rdf:Description about="urn:mozilla:extension:{***GID***}">
<em:version>1.0</em:version>
<em:updateLink>URLリンク(***)
</rdf:Description>

</rdf:RDF>

以上のような書式でrdfをアップしておきました。
これに対して、install.rdfに<em:version>0.9</em:version>とした拡張を
ツール > 拡張機能 > 確認 とやってみたところ、更新されたパッケージが見つかりませんでした
になってしまいました。

おそらくはrdfの書式が間違っているか足りないのかと思いますが、
最低限の正しい書式はどのようになるか、教えていただきたいです。

869:デフォルトの名無しさん
04/10/08 21:45:58
>>868
1.0から仕様が変わりました。

是とか参考にすれば分かるはず
URLリンク(cdn.mozdev.org)

870:868
04/10/08 22:44:32
>>869
できました。ありがとうございました。
どうやら更新確認のrdfにもキャッシュが効いてたせいで余計混乱してたみたいです。

871:デフォルトの名無しさん
04/10/09 07:55:19
キーバインドでの質問なのです。
以下のものを *.xul で保存して Firefox(0.10.1) で読み込み、
Alt + 何か を押すと(k以外の何でも)反応してしまい、他のショートカットを上書きしてしまいます。
何が悪いのかさっぱり解らないのですが、ヒントだけも教えてもらえないでしょうか?


<?xml version="1.0"?>
<window id="keyconfigOverlay"
xmlns="URLリンク(www.mozilla.org)">
<keyset id="mainKeyset">
<key id="keychk" keycode="k" modifiers="alt" oncommand="alert('hoge');" />
</keyset>
</window>


872:デフォルトの名無しさん
04/10/09 09:39:37
keycode じゃなくて key
modifiers の値は alt より accel のほうがいいかも。

873:デフォルトの名無しさん
04/10/09 11:34:35
ここらあたりも読んでおくと吉かと
URLリンク(www.mozilla-japan.org)
Mozilla キーボード・プラン FAQ とクロスリファレンス

874:デフォルトの名無しさん
04/10/09 14:35:07
>>872-873
ありがとう。
思い通りになりました。m(_ _)m
しかし、accelは使用済みが多いし、ctrl+altも駄目となると、結構厳しいですね……

875:デフォルトの名無しさん
04/10/09 18:14:24
俺は ctrl(accel)+shift をよく使う。空いてるし。

876:デフォルトの名無しさん
04/10/09 18:34:47
>>866 まだ見てるかな?
listbox の中身を rdf ファイルから読み込んで template で作るとき
rdf の読み込みが非同期なので template 内の要素にアクセスできないことがある。

listbox の datasources をまず rdf:null にしておいて、
var RS = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var DS = RS.GetDataSourceBlocking("chrome://[rdf の場所]");
var oListBox = document.getElementById("[listbox の ID");
oListBox.database.AddDataSource(DS);
oListBox.builder.rebuild();
oListBox.selectedIndex = 1;

rdf がローカルならこれでいいんじゃないかな。
rdf がリモートなら RS.GetDataSource , DS.addXMLSinkObserver 使う。
的外れだったらスマソ

877:866
04/10/09 23:34:29
>>876
GetDataSourceBlocking ですか、ありがとうございます。ただ、これだけだと selectedIndex = 1; がうまく動きませんでした。
どうやらここでの非同期な動作は、「RDF 読み込み」と「template による要素の生成」のふたつのようで、>>876 は前者、>>866 は多分後者の処理の終了を受け取る方法だと思いました。
そこで >>876 の最後の行 oListBox.selectedIndex = 1; の手続きを >>866 の方法で行うことにしたら、正常に動作するようになりました。

878:デフォルトの名無しさん
04/10/10 17:25:54
キャッシュのすべてのエントリを取り出す方法はありませんでしょうか?
nsICacheServiceにvisitEntriesなるメソッドがあったりしますが…。

879:デフォルトの名無しさん
04/10/10 21:54:45
>>878
まさにそれですね。

var myCacheVisitor={
QueryInterface : function(aIID)
{
if (aIID.equals(Components.interfaces.nsICacheVisitor))
return this;
throw Components.results.NS_NOINTERFACE;
},
visitDevice : function(aDeviceID, aDeviceInfo){return true;},
visitEntry : function(aDeviceID, aEntryInfo){return true;}
};
こんな風に自分でオブジェクトを作って渡すと、cacheServiceが
myCacheVisitor.visitEntry(aDeviceID, aEntryInfo)を呼んでくれます。
falseを返すとそこで止まります。

URLリンク(developer-test.mozilla.org)
こんなのがあったんですね。
公式版xulplanetか…

880:878
04/10/10 23:00:08
>>879
すげえ、できました!感動です。

881:デフォルトの名無しさん
04/10/16 10:41:10
XBL から外部の、例えば hoge.js を読み込む方法はありませんでしょうか?

882:デフォルトの名無しさん
04/10/16 13:39:32
xul の名前空間指定しておいて
<xul:script src="..."/> とか >>242-246 の mozIJSSubScriptLoader 使うとか。
chrome:// 内じゃないと無理だけど。

883:デフォルトの名無しさん
04/10/18 01:40:17
<xul:script src="..."/>はエグイな。

884:881
04/10/19 18:35:24
>>242 を参考にすることで実現できました。 882 さんありがとうございました。

<constructor><![CDATA[
const scriptLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader);
scriptLoader.loadSubScript("chrome://somepackage/content/common.js", this); //this に対して読み込む
...
]]></constructor>


885:デフォルトの名無しさん
04/10/24 12:33:05
Firefox用の拡張のロケールマニフェストに仕様変更があります。
URLリンク(www.saintpatrickdc.org)

886:デフォルトの名無しさん
04/10/24 12:35:14
onkeypress とかのイベントハンドラでキー入力を検知できますが、
Input Method を使った(Atok,IME,ことえり,XIMとかの)日本語入力を検知する方法はありませんか?

887:デフォルトの名無しさん
04/10/24 13:22:01
>>886
C++とかでコードを書けば可能なのではないかと。


888:デフォルトの名無しさん
04/10/24 14:13:54
nsIDOMCompositionListenerをがんばって実装するしかないな。
URLリンク(lxr.mozilla.org)

889:886
04/10/24 14:59:40
nsIDOMCompositionListener::HandleEndComposition で処理できるように見えるけれども、
Components.interfaces.nsIDOMCompositionListener
が JavaScript で呼び出せないから、
Seamonkey の nsTypeAheadFind.cpp のように C++ でがんばるしかないようです。
URLリンク(lxr.mozilla.org)

890:デフォルトの名無しさん
04/10/24 23:56:34
インターフェイスをヘッダで定義してるのは、ネスケ時代の古いコードだね。

891:デフォルトの名無しさん
04/10/28 02:20:49
XULでファイルの圧縮はできますか?解凍はできそうなかんじですが。

892:デフォルトの名無しさん
04/10/28 17:06:14
できない。解凍はできる。

893:デフォルトの名無しさん
04/10/30 05:01:26
documentのHTMLソースを文字列として取得したいのですが、
document.getElementsByTagName("html")[0].innerHTMLの前後にHTMLタグをくっつける以外の方法はありますか?

894:デフォルトの名無しさん
04/10/30 05:30:18
XMLならnew XMLSerializer()のserializeToString()という手もありますが、
できればHTMLのまま取得したいです。

895:デフォルトの名無しさん
04/10/30 21:12:08
こんな方法もあったり。

var request = new XMLHttpRequest();
request.onload = function() { alert(request.responseText); };
request.open('GET', document.location.href);
request.send(null);

ただ、このためだけに通信を行わなくてはならないのが難ですね。


896:デフォルトの名無しさん
04/11/01 22:28:59
>>895
その方法でできました。やはり通信が必要な分タイムラグが生じてしまいますが。

続けて質問させてください。
バイナリファイルをFTPでアップロードする方法を教えてください。
アスキーならBookmarksFTPを参考にして
var sis = Components.classes['@mozilla.org/io/string-input-stream;1'].createInstance(Components.interfaces.nsIStringInputStream);
this._channel = SBservice.IO.newChannelFromURI(uri).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
sis.setData("HOGE", -1);
this._channel.setUploadStream(sis, "text/xml", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);

という方法で簡単にできたのですが…

897:デフォルトの名無しさん
04/11/01 22:32:30
>>895
その方法でできました。やはり通信が必要な分タイムラグが生じてしまいますが。

続けて質問させてください。
バイナリファイルをFTPでアップロードする方法を教えてください。
アスキーならBookmarksFTPを参考にして
var sis = Components.classes['@mozilla.org/io/string-input-stream;1'].createInstance(Components.interfaces.nsIStringInputStream);
this._channel = IO_SERVICE.newChannelFromURI(uri).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
sis.setData("HOGE", -1);
this._channel.setUploadStream(sis, "text/xml", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);

という方法で簡単にできたのですが…

898:デフォルトの名無しさん
04/11/02 05:28:18
fireftp(だったっけ? firefoxにFTPの機能を加えるやつ)のソースを覗くとわかるかも。

899:デフォルトの名無しさん
04/11/03 17:56:36
スクリプト上でどうやってバイナリを表現しているかにも拠りますが…

バイナリファイルのことだったら、そこのsisのかわりにnsIFileInputStreamを
もってきて、initすればそのまま使えます。

今日はnsIInputStreamの話ばっかりだな…

900:デフォルトの名無しさん
04/11/05 06:58:32
>>898
ありがとうございます。FireFTPのソースを見てまいりましたが、根本的にやり方が違うようでした。
ソースが非常に長くて大変ですが、じっくりと読みこなそうと思います。

>>899
BookmarksFTPを参考に以下のように書き換えてみましたが、
アップロード先を見ると、0byteのファイルとなっています。
アスキーのときはきちんとアップロードされたのでパーミッションとかには問題ないと思いますが。
以下、コードの抜粋ですみません。

var fis = Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream);
this._channel = IO_SERVICE.newChannelFromURI(aURI).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
fis.init(aBinFile, 1, 0, false);
this._channel.setUploadStream(fStream, "", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);
return true;
} catch(e) {
}


901:デフォルトの名無しさん
04/11/05 06:59:38
>>898
ありがとうございます。FireFTPのソースを見てまいりましたが、根本的にやり方が違うようでした。
ソースが非常に長くて大変ですが、じっくりと読みこなそうと思います。

>>899
BookmarksFTPを参考に以下のように書き換えてみましたが、
アップロード先を見ると、0byteのファイルとなっています。
アスキーのときはきちんとアップロードされたのでパーミッションとかには問題ないと思いますが。
以下、コードの抜粋ですみません。

var fis = Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream);
this._channel = IO_SERVICE.newChannelFromURI(aURI).QueryInterface(Components.interfaces.nsIUploadChannel);
try {
fis.init(aBinFile, 1, 0, false);
this._channel.setUploadStream(fis, "", -1);
this._channel.asyncOpen(this, null);
this._callback("send", status);
return true;
} catch(e) {
}

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がポイント

904:デフォルトの名無しさん
04/11/06 05:15:11
>>903
遅くなりました、情報ありがとうございました。
とても簡単なことだったんですね……。

とりあえず、ここのLogに残ってるLinkを少しづつ読んでいって
もう少しましな知識をつけたいと思います。


905:デフォルトの名無しさん
04/11/06 22:00:18
このスレが900まで伸びるとは…

906:デフォルトの名無しさん
04/11/10 03:46:27
Firefox 1.0記念age

907:デフォルトの名無しさん
04/11/13 03:03:09
flyson氏もplus7氏もやめちゃって、潰える予感

908:デフォルトの名無しさん
04/11/13 19:02:18
>plus7氏もやめちゃって
誰が何をやめたんですか?

909:デフォルトの名無しさん
04/11/14 05:55:20
FIreFoxの検索窓を記述するにはどうしたらいいですか?

910:デフォルトの名無しさん
04/11/14 06:18:35
chrome://browser/content/browser.xulを見てみたらどうです?

911:デフォルトの名無しさん
04/11/14 18:16:36
gecko を lisp でコントロールしたいです

912:デフォルトの名無しさん
04/11/16 12:56:59
>>908
Geckoタブブラウザ Bagel ~ベーグル~
スレリンク(software板)
>>911
Geckoベースのブラウザを作ろう。
スレリンク(tech板)

913:デフォルトの名無しさん
04/11/16 13:23:18
Firefoxの拡張って開発中はどこに置いとけばいいんですか?
XULチュートリアルにあるように /chrome の下に置いて
installed-chrome.txt 書き換えて再起動しても読み込まれてない
みたいなんですが…
chrome URL で直接呼び出すとちゃんと出てくるので
文法エラー等はないはずです。

914:デフォルトの名無しさん
04/11/16 13:27:06
XULのキャッシュが効いている可能性大では?
about:configからnglayout.debug.disable_xul_cacheをtrueにしてみてください。

915:デフォルトの名無しさん
04/11/16 13:40:06
>>914
だめでした。何でじゃー

>>856-857に類似の質問があったけど肝心のリンク先が消えてる…

916:デフォルトの名無しさん
04/11/16 13:45:01
chrome.rdfは削除した?

そのページのキャッシュ:URLリンク(www.google.co.jp)

917:デフォルトの名無しさん
04/11/16 13:46:00
あるいは再起動したつもりがプロセスが残ってたりとか。

918:デフォルトの名無しさん
04/11/16 13:49:37
>>913
素直にinstall.rdfを書いたほうがいい。
jarにしなくてもインストールできるので。
URLリンク(kb.mozillazine.org)

919:デフォルトの名無しさん
04/11/16 20:41:10
XULを自分のプログラムに組み込みたいんだが、指針みたいなものってあるかな。

920:デフォルトの名無しさん
04/11/16 21:54:35
geckoを使わない限り、XULは面白くもなんともないと思う。

921:デフォルトの名無しさん
04/11/16 22:07:14
XULプログラミング始めたいのですが
読みやすくてシンプルなExampleのおすすめは何ですか?
私のスキルはC,Python,PHP,です

922:デフォルトの名無しさん
04/11/16 22:16:38
>>921
Sageとかコードが綺麗なのを参考にするといい。
GrepSidebarはお勧めしない。

923:デフォルトの名無しさん
04/11/16 23:16:22
>>921
いきなりコード見るよりはとりあえずXULチュートリアルから学んでみてはいかがでしょう?
一部古くて使い物にならない部分もありますが。
URLリンク(xul-app.hp.infoseek.co.jp)

あと、Tourisugari氏のコードもきれいです。

924:921
04/11/16 23:19:55
>>922ー923
ありがとうございます
さっそく始めてみます

925:921
04/11/16 23:28:51
元のチュートリアルが結構up-to-dateだったので
こちらを読んでみます。
URLリンク(xulplanet.com)

926:921
04/11/16 23:29:17
すいません
こっちでした
URLリンク(www.xulplanet.com)

927:デフォルトの名無しさん
04/11/16 23:41:02
ああ、そうそう、英語でいいならぜひそちらを。

928:913
04/11/17 09:17:00
>>916
一回削除したはずだったのですが
もう一度削除してやり直したらうまくいきました。
ありがとうございます。

929:デフォルトの名無しさん
04/11/17 09:31:27
Firefoxの拡張のお作法についてcurrent practiceをまとめたページはないですか?
*.xulとか*.jsは書けたのですが、それをxpiにするにはどういうファイルを
用意するかとか、xpi/jar内部のディレクトリ構成とかについて
ちゃんと書いてあるページが知りたいです。
一応、自分が使ってる拡張のソースを参考に見様見真似でinstall.rdfや
install.jsを書いたのですが。
あと拡張の更新情報のためにwebに載せるRDFファイル(update.rdf?)の書き方も。


930:デフォルトの名無しさん
04/11/17 11:48:19
>>929
URLリンク(www.bengoodger.com)
かなぁ。
もっとちゃんとしたドキュメントがあるかもしれない。

931:デフォルトの名無しさん
04/11/17 11:50:21
URLリンク(www.mozilla.org)
は?

932:929
04/11/17 14:24:18
>>930,931
おお、まさにこれです。ありがとうございます。

サイトマップからも探したのですが見付けられませんでした。
mozilla.orgのweb構造は多分に謎です……


933:デフォルトの名無しさん
04/11/17 20:01:31
>>932
> mozilla.orgのweb構造は多分に謎です……
禿同

934:デフォルトの名無しさん
04/11/18 04:46:12
>>929
URLリンク(www.mozilla.org)<)に変えると和訳ページに。

ちなみに自分もただいま勉強中です。
やっとこさ、Firefox 0.8系の拡張を1.0でInstall/Uninstallができる様になった
ところで、最近、少しづつ中身を書いております。
自分のやりたいことをGoogleで調べながら書いてますが
だいたい、上記の和訳かXULPlanetかPiro氏のページに飛びますね。
ここ共々お世話になっております。


935:デフォルトの名無しさん
04/11/18 11:02:09
Mozillaの履歴の情報をIEのWinInetのように
外部から操作することはできますか?
XULアプリからでもかまいません

936:デフォルトの名無しさん
04/11/18 12:33:24
URLリンク(www.xulplanet.com)
URLリンク(www.xulplanet.com)
URLリンク(www.xulplanet.com)
XULアプリならこのあたりで操作できます。

937:デフォルトの名無しさん
04/11/19 02:07:09
>>935
具体的には
var history = Components.classes["@mozilla.org/browser/global-history;2"].
getService(Components.interfaces.nsIGlobalHistory);
history.removeAllPages(); //← >>936 の nsIGlobalHistory.html参照
のように使う。rdf:history というRDFデータベースとしても利用できたはず。

938:デフォルトの名無しさん
04/11/20 17:00:05
URLリンク(mozdev.org)
RSSフィードのLink要素などの中に&amp;や&#039;が含まれていても
デコードすべきところでしてくれないてバグだが、拡張機能Sageだけじゃなく
Firefox1.0のライブブックマークにも同じ症状があるぽいよな…
仮に変換だけ実装しても脆弱性起こしそうだし、これはどう直すべきなんだろう。
自分はXULも何もさっぱりなので手も足も出ないがorz


939:デフォルトの名無しさん
04/11/20 18:32:20
>>938
本当にそんなバグがあるんだったら、
とりあえず、bugzilla.mozilla.orgの方を探してみた方がいいと思うよ。

940:938
04/11/21 01:02:20
>>939
そういやそうだったな。
とりあえずライブブックマークの方に該当すると思われるバグはこれ。
URLリンク(bugzilla.mozilla.org)


941:デフォルトの名無しさん
04/11/21 02:55:34
>>940
そのバグで報告されているリンク先は
&amp;となっているので、まともなxmlじゃないと思う。

942:デフォルトの名無しさん
04/11/21 02:57:12
あ、やられた…
&amp;amp;ね。

943:デフォルトの名無しさん
04/11/22 14:56:54


944:デフォルトの名無しさん
04/11/24 21:40:10
二つのRDFをメモリー上で一緒にするスマートな方法ってありませんか?

945:デフォルトの名無しさん
04/11/24 22:40:56
一緒にするとは?

946:デフォルトの名無しさん
04/11/24 23:01:10
合成ってことです。
nsIRDFCompositeDataSourceはnsIRDFDataSourceから作れないようなので

947:デフォルトの名無しさん
04/11/24 23:18:19
var myCDS = Components.classes['@mozilla.org/rdf/datasource;1?name=composite-datasource'].createInstance(Components.interfaces.nsIRDFCompositeDataSource);
myCDS.AddDataSource(myDS1);
myCDS.AddDataSource(myDS2);
ではダメですか?

948:デフォルトの名無しさん
04/11/25 16:39:45
どちらかと言うと片方のRDFに別のRDFを合成して、OKを押したら合成後のRDFをflushさせて書き出したいんですよね。
まぁrdfのテンポラリファイルを作るか、すべてのリソースを移動すればいいんですけどね

949:デフォルトの名無しさん
04/11/25 17:59:38
RDFとして扱わずに単純なXMLとして操作してはどうだろう

950:デフォルトの名無しさん
04/11/25 18:00:49
うほっ良スレ!

951:デフォルトの名無しさん
04/11/25 18:43:31
URLリンク(xulplanet.com)
の copyAllToDataSource とかかな。

952:デフォルトの名無しさん
04/11/25 20:12:21
>>949
それは昔やってました。
thunderbirdでdocument.evaluateが使えなくRDF化している最中でつまずきました

>>951
それを使えばできそうですね。
ありがとうございます
#というかこんな物があったなんてorz
#独自でラッピング(?)してました。

953:デフォルトの名無しさん
04/11/25 21:16:34
バリバリにグローバルつかってるのは、
overlayした時に不便だから、結局自分で手書きした方が楽なんだよねぇ。

954:デフォルトの名無しさん
04/11/26 20:51:28
もう一個質問いいですか?
Seqが削除できません。
Unassertで関連を切っても残ってしまいます。
何か方法ありませんか?
#それともこっちのミスかなぁ

955:デフォルトの名無しさん
04/11/26 21:43:30
>>954
var ds = RDFContainer.DataSource;
var node = RDFContainer.Resource;

var keys = ds.ArcLabelsOut(node),
key,
value;
while (keys.hasMoreElements())
{
try {
key = keys.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
value = ds.GetTarget(node, key, true);
ds.Unassert(node, key, value);
}
catch(e) {
}
}
みたいにすれば消えるはず

956:デフォルトの名無しさん
04/11/26 22:00:40
それしてるんですよね。
Seqの中身をすべて削除してunassertしても空のどことも関連がないSeqが残ってしまいます。
#やっぱコードのミスかなぁ

957:デフォルトの名無しさん
04/11/27 00:12:33
>>956
スクリプトのどこかにミスがあって二重にassertしてるのでは?
>>955
value = ds.GetTarget(node, key, true);
の代わりに、GetTargetsで全てのノードを取り出してunassertすれば
より確実だと思うけど、野暮ったいから自分のスクリプトではやってない。

958:デフォルトの名無しさん
04/11/27 11:10:21
assertはしてないです。
元からあるRDFを関数再起呼び出しでunassertするだけなんですが…
GetTargetsでも一つしか帰ってこない気がします。
もしかして削除の順番とかが関係するんでしょうか?

959:デフォルトの名無しさん
04/11/27 15:34:04
>>955 とか idl 見て今気づいたんだけど、Unassert って引数 3 個だったんだ。

URLリンク(piro.sakura.ne.jp)
を見てRDFの操作方法を憶えたから、Unassert(aResource,aProperty,aTarget,true);と使ってしまっている。

960:デフォルトの名無しさん
04/11/27 17:40:04
>>959
え…
本当ですね。
でも最後のboolがないだけなので最後をtrueとしても問題はないですね。

961:デフォルトの名無しさん
04/11/27 18:28:33
>>959
コピペして書いたので間違えてましたorz

962:デフォルトの名無しさん
04/11/29 12:38:04
Firefoxのブックマークサイドバーにツールチップを表示する拡張を
作ろうとしているのですが、デフォルトで表示される表示領域より
ツールチップのラベルが長いときのツールチップを消せません。
デフォルトのツールチップはどこで表示されているのでしょうか?

963:デフォルトの名無しさん
04/11/29 12:38:38
訂正
×ツールチップのラベルが→○ブックマークのラベルが

964:デフォルトの名無しさん
04/11/29 15:47:08
URLリンク(bugzilla.mozilla.org)
消すのはちょいと難しそう

965:デフォルトの名無しさん
04/11/29 17:04:35
む、ネイティブ側にあるのか
しかもそのコードが悪さをしてるのかtreecellにtooltip設定しても
まともに動作しない…

966:955
04/11/30 17:59:31
>>960
問題ないの? じゃあ直さないでいいや。



967:966
04/11/30 18:01:32
955じゃなくて>>959だった。

968:デフォルトの名無しさん
04/11/30 18:16:55
XULWiki 発見!
URLリンク(wiki.fdiary.net)

969:デフォルトの名無しさん
04/12/01 00:26:59
GJ

970:デフォルトの名無しさん
04/12/03 00:38:10
Thunderbirdの返信ヘッダカスタマイズ拡張を作ろうと思ったんだけど、
このコードでThunderbirdが即死する。
XULのプログラムは初めてなんですが、どこが間違ってるんでしょうか…

var quoteListener = {
onStartRequest: function(request , context) {
},

onStopRequest: function(request, context , statusCode) {
},

onDataAvailable: function(request, context, inputStream, offset, count) {
},

QueryInterface: function(iid) {
if (iid.equals(Components.interfaces.nsISupports) ||
iid.equals(Components.interfaces.nsIRequestObserver) ||
iid.equals(Components.interfaces.nsIStreamListener))
return this;

throw Components.results.NS_NOINTERFACE;
}
};

var msgQuote = Components.classes['@mozilla.org/messengercompose/quoting;1'].createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);

if (msgQuote)
msgQuote.QuoteMessage(params.originalMsgURI, false, quoteListener, null, false);

971:デフォルトの名無しさん
04/12/03 17:24:09
.createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);
->
.createInstance(Components.interfaces.nsIMsgQuote);

972:デフォルトの名無しさん
04/12/03 17:26:20
つーか、どこで死ぬのかわからないってことは、
これからも手探りでやるつもり?
自分には無理だ…

973:デフォルトの名無しさん
04/12/03 19:12:01
>>971
ありがとう。でも結果同じでやっぱり死んじゃう。・゚・(ノ∀`)・゚・。

QuoteMessage()の呼出し後に、onStartRequest()は実行されてるけど、
onDataAvailable()が実行されずにアプリケーションエラーで死亡(´・ω・`)

XULでプログラムしてる人って、xulplanet.comとMozillaのソースコード
だけで何とかなってるの?

974:デフォルトの名無しさん
04/12/03 22:59:02
>>973
あ、それは自分も経験がある。
引数のinputStreamをうそでも触っておいた方がいいみたい。

>xulplanet.comとMozillaのソースコードだけ
まあ、ない袖は振れないってやつですね。

975:デフォルトの名無しさん
04/12/03 23:00:19
Firefoxの拡張作る際の手順だけ誰か教えて下さい('A`)

976:デフォルトの名無しさん
04/12/03 23:06:43
>>974
>引数のinputStreamをうそでも触っておいた方がいいみたい。

ぜひ、詳しく(`・ω・´)

977:デフォルトの名無しさん
04/12/04 00:22:49
>>975
URLリンク(www.mozilla.gr.jp)
とか見てみたらどうでしょう。5のインストーラのとこはもはや古くてダメですが。

978:デフォルトの名無しさん
04/12/04 02:47:40
>>977
ありがとうございます。
そのページはすでに、すべて読みました。
私がやりたいのはFirefoxにメニュー項目を追加したりする、Firefoxの拡張を作る際の手順です。すんません('A`)



979:デフォルトの名無しさん
04/12/04 02:52:36
そういった親切なリファレンスはないので、
似たようなことをやってる拡張を探して中身を見るのがてっとりばやいのでは?

980:デフォルトの名無しさん
04/12/04 02:55:03
やっぱりそうですよね。どうもありがとうございました('A...

981:デフォルトの名無しさん
04/12/04 02:56:45
>>980
あなたが親切なリファレンスを書くとみんなが幸せになれる

982:デフォルトの名無しさん
04/12/04 02:58:12
>>981
今私もいつかそういう手順を説明した文章を書こうかなと思ってたところです。('...

983:975
04/12/04 03:49:31
ここがなかなか参考になりそうな予感がします。
URLリンク(www.mozilla-japan.org)

984:デフォルトの名無しさん
04/12/04 04:40:36
RDFの個々の要素についての資料が全然見つからないんですが、
どこかにありますか?

985:デフォルトの名無しさん
04/12/04 04:56:43
個々の要素とは?

986:デフォルトの名無しさん
04/12/04 05:07:28
たとえば、他の人が書いたコードを読んでいて、

document.getElementById("messagepane").contentDocument;
document.getElementById("statusbar-icon");

とかあった場合に、messagepaneやstatusbar-iconが何なのか、
ググっても全然見つかりません。

987:デフォルトの名無しさん
04/12/04 05:25:44
RDFではなくXULではないでしょうか。
XULを見てそのidを探してみてください。

988:デフォルトの名無しさん
04/12/04 05:37:08
ありがとうございます。XULの中にありました。

989:(盗´ー`盗)<こんばんは、安倍ぬすみだべ。
04/12/04 13:23:31
           ___
         | 安 |
         | 倍 |    チーン…
         | ぬ |
         | す |         
         | み |
      ,,,.   | 之 |  ,'"';,
    、''゙゙;、).  | 墓 | 、''゙゙;、),、
     ゙''!リ'' i二二二二!゙''l!リ'''゙
     ∥  `i二二二!´ ∥
     昌 |: ̄ ̄ ̄ ̄:| 昌
    | ̄:|_|;;;l"二二゙゙l;;|_| ̄:|
    |  :|::::::| |;;;;;;;;;;| |::::|  :|
    |  :|::::::|┌─┐|::::|  :|
 ./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\



990:デフォルトの名無しさん
04/12/04 14:20:36
某拡張のセキュリティホール見ておもったんですが
システムアクセスの権限を放棄するようなことはできないのでしょうか。
>>659にそれっぽいことが書いてるんですが肝心のプロパティやメソッドは
スクリプトからアクセスできないものばかり…

991:デフォルトの名無しさん
04/12/04 14:25:27
XULといえば

アフリカの、ジンバブエを首都に持つかつての勇猛な民族ズールー族を思い出す。
現在では国名もジンバブエ?





992:デフォルトの名無しさん
04/12/04 17:24:29
XULってエックスユーエルって読むんじゃねーのかよ!ヽ(`Д´)ノ

993:デフォルトの名無しさん
04/12/04 18:32:28
XULの読みはズールじゃなくて、クスールだろ?
でも、Xylitolはキシリトールじゃなくて、ザイリトールだ。

994:デフォルトの名無しさん
04/12/04 21:59:08
↓次スレたのむ

995:デフォルトの名無しさん
04/12/04 22:00:55
↑テンプレ頼む

996:デフォルトの名無しさん
04/12/04 22:16:21
責任の擦り付け合い乙

997:デフォルトの名無しさん
04/12/05 00:03:40
テンプレ必要か?

998:デフォルトの名無しさん
04/12/05 00:06:53
んじゃ俺がテンプレなしで立てるぞ

999:デフォルトの名無しさん
04/12/05 00:10:15
Mozillaでプログラミング(XUL) その2
スレリンク(tech板)

1000:デフォルトの名無しさん
04/12/05 00:15:59
ume

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


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