Mozillaでプログラミング(XUL)
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001Moziller
NGNGMozilla 1.0 RC1がリリースされ、
XUL 1.0の仕様が一応フリーズしました。
なので、そろそろXULアプリケーションも出始めることでしょうし(希望的観測)
MozillaでのXULプログラミングについて騙りませんか。
Mozillaスレッド M10
http://pc.2ch.net/test/read.cgi/software/1019550671/
0831デフォルトの名無しさん
NGNGありがとうございます! 参考にさせていただきます!
>>828の拡張は画像で表示するんですよね。
ポップアップしたページからまたポップアップ……と階層的に表示したいと考えているので確かにそれだと無理そうです。
>>830のようにページ表示を縮小する方向で作ってみることにします。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG存続の要素って?
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGそうです。
結局styleでdisplay:noneにして解決しました。
0836デフォルトの名無しさん
NGNGhiddenプロパティの方がいい。
0837デフォルトの名無しさん
NGNG*[hidden="true"] { display: none; }
と書いてあるんだけどね。
0838デフォルトの名無しさん
NGNGそういう問題ではない。
0839デフォルトの名無しさん
NGNG何故でしょうか?
stylesheetをオーバーレイさせて、ほぼ一意性があるようにセレクタを設定しました。
そこを追加・削除できる拡張とバッティングするはずですが、hiddenプロパティーでも同じはずなので一番いいのはDOMで要素ごと削除だと思いますが、ちょっとめんどくさい…
#日本語って難しい
0840デフォルトの名無しさん
NGNGDOMで要素を削除するのはやめた方がいい。
0841デフォルトの名無しさん
NGNGinstall.rdfの対応バージョンのところだけでしょうか。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGいまのところ、URLからHTMLDocumentオブジェクトを作るのはできないのでしょうか?
browser要素などを隠してdocumentを得るのはダサいですよね。
HTMLDocumentからanchorエレメントを得て先読みするものを作りたいのですが
何かいい方法内でしょうか?
あと、DOMImplementationのcreateDocumentからHTMLDocumentが返ってくることって
あるんですかねぇ。
XMLDocumentだとできるようだが・・・。
0844デフォルトの名無しさん
NGNGサムネイルを作るというかスクリーンキャプチャ撮影のインターフェースならあるようなのですが、
実装はされていないようですね。
http://xulplanet.com/references/xpcomref/ifaces/inIScreenCapturer.html
0845デフォルトの名無しさん
NGNGnsIDocumentLoaderFactory というのを発見したので、試しに
Components.classes["@mozilla.org/content-viewer-factory/view;1?type=text/html"]
を呼んでみたが、実装されていないのか動かない。
0846845
NGNGはきちんと返しているみたいだけれども、
nsIDocumentLoaderFactory::createBlankDocument(in nsILoadGroup, out retval nsISomething);
の引数である nsILoadGroup の扱い方がわからなかった。
0847845
NGNGvar 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 みたいのがあると便利だな...
0848デフォルトの名無しさん
NGNGFirefoxまとめサイトにそういうページを作ればいいのでは?
wikiの乱立はやめてほしい
0849デフォルトの名無しさん
NGNGhttp://wiki.mozilla.org/
0850デフォルトの名無しさん
NGNG確かに返ってきますね。
でも、loadURIでuriを指定してもダウンロードはしている様だけど
中身が入ってないっぽい?
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNGSOAP_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");
どうすればいいでしょうか?
0853852
NGNGどっか解説サイトないかなぁ
0854852
NGNGidlist={
id:"text"
id:"text2"
}
0855デフォルトの名無しさん
NGNG名前空間のの設定ができねぇorz
0856デフォルトの名無しさん
NGNGhttp://www.mozilla.gr.jp/~kazhik/xul/tutorial01.html
この通りに installed-chrome.txt を記述しても、
chrome.rdf に書き込まれず、xul が追加できません。
理由が解る人が居らっしゃたら、御教え願えないでしょうか?
……install.rdf を作って、xpiでインストールするしか無いのかなぁ。
0857デフォルトの名無しさん
NGNGhttp://fls.moo.jp/wdiary/200406.php#d08
こっちを見た方がいいかも
0859デフォルトの名無しさん
NGNGlocaleのja-JPのリソースが使用されないんですが何か設定いりますか?
自作のが駄目で、メジャーなのをいくつか入れてみたけど全部en-USのが使われました。
Firefox自体は通常インストールで何もいじっていません。
0860デフォルトの名無しさん
NGNGhttp://firefox.geckodev.org/?FAQ#lang-jajp
0861デフォルトの名無しさん
NGNGありがとうございます。
ずばりそれでした。
↓も参照しました。
ttp://moz.skillup.jp/jlp/viewtopic.php?t=223
本体側の問題のようですね、1.0の時には直っていて欲しいものです。
0862デフォルトの名無しさん
NGNGhttp://luxor-xul.sourceforge.net/
というのを見つけたんだけど、使ったことのある人いる?
http://www.javadesktop.org/forums/thread.jspa?threadID=1324&tstart=0
なんて言われていたりもするんで、どうなのかなーと思ったんだけど。
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG読んで、XULRunner やる気みたいだけど実際やってんのかなぁ、と思って LXR 見たら
http://lxr.mozilla.org/mozilla/source/xulrunner/
あったよ。2,3 ヶ月したらバイナリでてくるかな?
0865デフォルトの名無しさん
NGNG結構ある、どころか全くの別物だよ。
とりあえず、このスレのXULとは何の関係もない。
0866デフォルトの名無しさん
NGNGtemplate で 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;
}
});
0867866
NGNGttp://www.xulplanet.com/references/xpcomref/ifaces/nsIXULTemplateBuilder.html#method_addListener
0868デフォルトの名無しさん
NGNG<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<rdf:Description about="urn:mozilla:extension:{***GID***}">
<em:version>1.0</em:version>
<em:updateLink>http://***/***/***.xpi</em:updateLink>
</rdf:Description>
</rdf:RDF>
以上のような書式でrdfをアップしておきました。
これに対して、install.rdfに<em:version>0.9</em:version>とした拡張を
ツール > 拡張機能 > 確認 とやってみたところ、更新されたパッケージが見つかりませんでした
になってしまいました。
おそらくはrdfの書式が間違っているか足りないのかと思いますが、
最低限の正しい書式はどのようになるか、教えていただきたいです。
0869デフォルトの名無しさん
NGNG1.0から仕様が変わりました。
是とか参考にすれば分かるはず
http://cdn.mozdev.org/updates.rdf
0871デフォルトの名無しさん
NGNG以下のものを *.xul で保存して Firefox(0.10.1) で読み込み、
Alt + 何か を押すと(k以外の何でも)反応してしまい、他のショートカットを上書きしてしまいます。
何が悪いのかさっぱり解らないのですが、ヒントだけも教えてもらえないでしょうか?
<?xml version="1.0"?>
<window id="keyconfigOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<keyset id="mainKeyset">
<key id="keychk" keycode="k" modifiers="alt" oncommand="alert('hoge');" />
</keyset>
</window>
0872デフォルトの名無しさん
NGNGmodifiers の値は alt より accel のほうがいいかも。
0873デフォルトの名無しさん
NGNGttp://www.mozilla-japan.org/projects/ui/accessibility/mozkeyintro.html#modifiers
Mozilla キーボード・プラン FAQ とクロスリファレンス
0874デフォルトの名無しさん
NGNGありがとう。
思い通りになりました。m(_ _)m
しかし、accelは使用済みが多いし、ctrl+altも駄目となると、結構厳しいですね……
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNGlistbox の中身を 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 使う。
的外れだったらスマソ
0877866
NGNGGetDataSourceBlocking ですか、ありがとうございます。ただ、これだけだと selectedIndex = 1; がうまく動きませんでした。
どうやらここでの非同期な動作は、「RDF 読み込み」と「template による要素の生成」のふたつのようで、>>876 は前者、>>866 は多分後者の処理の終了を受け取る方法だと思いました。
そこで >>876 の最後の行 oListBox.selectedIndex = 1; の手続きを >>866 の方法で行うことにしたら、正常に動作するようになりました。
0878デフォルトの名無しさん
NGNGnsICacheServiceにvisitEntriesなるメソッドがあったりしますが…。
0879デフォルトの名無しさん
NGNGまさにそれですね。
var myCacheVisitor={
QueryInterface : function(aIID)
{
if (aIID.equals(Components.interfaces.nsICacheVisitor))
return this;
throw Components.results.NS_NOINTERFACE;
},
visitDevice : function(aDeviceID, aDeviceInfo){return true;},
visitEntry : function(aDeviceID, aEntryInfo){return true;}
};
こんな風に自分でオブジェクトを作って渡すと、cacheServiceが
myCacheVisitor.visitEntry(aDeviceID, aEntryInfo)を呼んでくれます。
falseを返すとそこで止まります。
ttp://developer-test.mozilla.org/xpcom/api/
こんなのがあったんですね。
公式版xulplanetか…
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG<xul:script src="..."/> とか >>242-246 の mozIJSSubScriptLoader 使うとか。
chrome:// 内じゃないと無理だけど。
0883デフォルトの名無しさん
NGNG0884881
NGNG<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>
0885デフォルトの名無しさん
NGNGhttp://www.saintpatrickdc.org/bsmedberg/register-locale.html
0886デフォルトの名無しさん
NGNGInput Method を使った(Atok,IME,ことえり,XIMとかの)日本語入力を検知する方法はありませんか?
0887デフォルトの名無しさん
NGNGC++とかでコードを書けば可能なのではないかと。
0888デフォルトの名無しさん
NGNGhttp://lxr.mozilla.org/aviarybranch/source/dom/public/coreEvents/nsIDOMCompositionListener.h#54
0889886
NGNGComponents.interfaces.nsIDOMCompositionListener
が JavaScript で呼び出せないから、
Seamonkey の nsTypeAheadFind.cpp のように C++ でがんばるしかないようです。
http://lxr.mozilla.org/seamonkey/source/extensions/typeaheadfind/src/nsTypeAheadFind.cpp#127
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGdocument.getElementsByTagName("html")[0].innerHTMLの前後にHTMLタグをくっつける以外の方法はありますか?
0894デフォルトの名無しさん
NGNGできればHTMLのまま取得したいです。
0895デフォルトの名無しさん
NGNGvar request = new XMLHttpRequest();
request.onload = function() { alert(request.responseText); };
request.open('GET', document.location.href);
request.send(null);
ただ、このためだけに通信を行わなくてはならないのが難ですね。
0896デフォルトの名無しさん
NGNGその方法でできました。やはり通信が必要な分タイムラグが生じてしまいますが。
続けて質問させてください。
バイナリファイルを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);
…
という方法で簡単にできたのですが…
0897デフォルトの名無しさん
NGNGその方法でできました。やはり通信が必要な分タイムラグが生じてしまいますが。
続けて質問させてください。
バイナリファイルを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);
…
という方法で簡単にできたのですが…
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNGバイナリファイルのことだったら、そこのsisのかわりにnsIFileInputStreamを
もってきて、initすればそのまま使えます。
今日はnsIInputStreamの話ばっかりだな…
0900デフォルトの名無しさん
NGNGありがとうございます。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) {
}
0901デフォルトの名無しさん
NGNGありがとうございます。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) {
}
0902デフォルトの名無しさん
NGNGTab,Windowの新規作成時のタイミングを得たいのですが、
試してみたaddEventListener("load",では"更新"にも反応してしまいます。
他に何か方法はありますでしょうか?
0903デフォルトの名無しさん
NGNGwindow.addEventListener('load', listener, false)
最後のfalseがポイント
0904デフォルトの名無しさん
NGNG遅くなりました、情報ありがとうございました。
とても簡単なことだったんですね……。
とりあえず、ここのLogに残ってるLinkを少しづつ読んでいって
もう少しましな知識をつけたいと思います。
0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG誰が何をやめたんですか?
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNGGeckoタブブラウザ Bagel 〜ベーグル〜
http://pc5.2ch.net/test/read.cgi/software/1093876991/
>>911
Geckoベースのブラウザを作ろう。
http://pc5.2ch.net/test/read.cgi/tech/1023546699/
0913デフォルトの名無しさん
NGNGXULチュートリアルにあるように /chrome の下に置いて
installed-chrome.txt 書き換えて再起動しても読み込まれてない
みたいなんですが…
chrome URL で直接呼び出すとちゃんと出てくるので
文法エラー等はないはずです。
0914デフォルトの名無しさん
NGNGabout:configからnglayout.debug.disable_xul_cacheをtrueにしてみてください。
0915デフォルトの名無しさん
NGNGだめでした。何でじゃー
>>856-857に類似の質問があったけど肝心のリンク先が消えてる…
0916デフォルトの名無しさん
NGNGそのページのキャッシュ:http://www.google.co.jp/search?q=cache:uvlvdJ1gfFQJ:fls.moo.jp/wdiary/200406.php+&hl=ja&lr=lang_ja
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG素直にinstall.rdfを書いたほうがいい。
jarにしなくてもインストールできるので。
http://kb.mozillazine.org/index.phtml?title=Dev_:_Tips_:_Disable_XUL_cache
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG読みやすくてシンプルなExampleのおすすめは何ですか?
私のスキルはC,Python,PHP,です
0922デフォルトの名無しさん
NGNGSageとかコードが綺麗なのを参考にするといい。
GrepSidebarはお勧めしない。
0923デフォルトの名無しさん
NGNGいきなりコード見るよりはとりあえずXULチュートリアルから学んでみてはいかがでしょう?
一部古くて使い物にならない部分もありますが。
http://xul-app.hp.infoseek.co.jp/xultu-janit/
あと、Tourisugari氏のコードもきれいです。
0925921
NGNGこちらを読んでみます。
http://xulplanet.com/tutorials/whyxul.html
0926921
NGNGこっちでした
http://www.xulplanet.com/tutorials/xultu/
0927デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG*.xulとか*.jsは書けたのですが、それをxpiにするにはどういうファイルを
用意するかとか、xpi/jar内部のディレクトリ構成とかについて
ちゃんと書いてあるページが知りたいです。
一応、自分が使ってる拡張のソースを参考に見様見真似でinstall.rdfや
install.jsを書いたのですが。
あと拡張の更新情報のためにwebに載せるRDFファイル(update.rdf?)の書き方も。
0930デフォルトの名無しさん
NGNGhttp://www.bengoodger.com/software/mb/extensions/packaging/extensions.html
かなぁ。
もっとちゃんとしたドキュメントがあるかもしれない。
レス数が900を超えています。1000を超えると表示できなくなるよ。