Mozillaでプログラミング(XUL) その3at TECH
Mozillaでプログラミング(XUL) その3 - 暇つぶし2ch150:デフォルトの名無しさん
07/08/27 00:44:59
よーし、Firefoxの拡張の中身見てXUL勉強しちゃうゾーとpiroさんのサイトの色々表示させる設定をしたところ、いきなり詰まってしまいました。すみませんが教えてください。テキストボックスをクリックするたびに Auto Copy 0.6.4 と言う拡張が jsコンソールに
エラー: target.textbox has no properties
ソースファイル: chrome://autocopy/content/autocopyOverlay.js
行: 653
とエラーを表示します。これを表示させないようにするにはどう書き換えればいいでしょうか。
function Autocopy_isTargetEditable(target)~
if(target)
{
if(target.toString().match(/object XUL/i))
{
ココ→if(target.textbox.value)
{
return true;
}
}
}

151:デフォルトの名無しさん
07/08/27 20:31:29
target に textbox が存在しない事がエラーの原因なら
value を参照する前に textbox が null でないかチェックすればエラーは回避できる

if (target.textbox && target.textbox.value)

152:デフォルトの名無しさん
07/08/28 02:05:43
>>151
ありがとうございます。エラーが出なくなりました。
これで Fx でググったりサイト眺めながら拡張を見れます。
ありがとうございました。

153:デフォルトの名無しさん
07/09/05 20:34:42
jQuery だとか prototype.js だとか、そっち系のライブラリはもういいよってくらい氾濫してるくせに、
ぜんぜん XPCOM をラップするライブラリがないぜ?いや、jslib とか mozlib とかはあるけどさ・・・
Components だか Interfaces だか、 ns...みたいなプリフィックスとか見るだけで吐き気がするぜ。
XULRunner だってさ、.xul を D&D で投げるだけでとりあえず実行してくれたら、お手軽で素敵じゃないか?

154:デフォルトの名無しさん
07/09/05 22:22:50
つ FUEL

一応Firefox2にもバックポートできるようにするみたいなこと言ってたような気がする…

155:デフォルトの名無しさん
07/09/09 11:01:02
文字コードの自動判定ってどーやればいいんだろーか

156:デフォルトの名無しさん
07/09/09 22:47:18
>>155
Mozillaのuniversalchardetはscriptableじゃないインターフェイスらしいので、それをどうにかするか、それをCライブラリ化したものがあるからそれを使うか……。

157:デフォルトの名無しさん
07/09/09 23:40:22
>>156
あら、そーなんだ。うーん、複数の文字コードでとりあえず一度変換させて、
U+FFFDの数で推測する手もなくはないけどねぇ。貴重な情報どーも㌧クス。

158:デフォルトの名無しさん
07/09/11 22:42:48
mozStorageにデータを入れて、サイドバーにmozStorageから取得したデータを
表示させたいと思っています。

もし各ウィンドウのサイドバーごとにデータベースへの接続を持たせると、複数のウィンドウが
開かれている状態などでは、同時にデータベースへアクセスする可能性が有るので
URLリンク(developer.mozilla.org)
You can not access a single database from multiple connections from different threads.
に引っかかると思います。

こういう拡張を作成する場合、どのようにしてmozStorageを扱うのが良いのでしょうか?

159:デフォルトの名無しさん
07/09/12 01:01:54
JSからXPCOM経由でデータベース接続する分には「different threads」には引っかからないのでは。
もちろんFirefoxのプロセスはひとつだけという条件付きですけど。

160:デフォルトの名無しさん
07/09/12 02:33:34
各 window は個別にスレッドを持ってたと思う。
components/ に その拡張専用の storage service(singlton) を持つ
JS XPCOM をつくっておいて、
サイドバー XUL からはそのサービスを介してだけアクセスすればいいんじゃないかな。
Places(history,bookmarks) もそんなかんじだし。

161:158
07/09/12 03:01:47
なるほど、XPCOMを作れば解決出来そうですね。
調べてみます。有難うございました。

162:デフォルトの名無しさん
07/09/12 17:02:11
XUL チュートリアル(和訳)
URLリンク(xul-app.hp.infoseek.co.jp)
上のページは、元々「有限会社エヌアイティー技術情報部」というサイトに
あったものでした。
URLリンク(web.archive.org)

なぜか2002年に突然削除されてしまいましたが。このXULスレの初代のころです。

昨日、その元サイトの移転先を見つけました。断言はできませんが、状況から
見て、どうやら訳者様は亡くなっておられるようです。
URLリンク(www.geocities.jp)
URLリンク(www.geocities.jp)

合掌。


163:デフォルトの名無しさん
07/09/19 15:14:45
URLリンク(www.mozilla.gr.jp)
例えばこれでtextbox内でENTERを押すとHELLOボタンが押されたことにしたい場合ってどうしたらいいんでしょうか。
すいませんが教えてください。

164:デフォルトの名無しさん
07/09/19 16:05:36
>>163
textbox に onkeypress="if(event.keyCode==13)hello()" とかすれば?

165:デフォルトの名無しさん
07/09/19 16:17:58
ところで DOM_VK_RETURN じゃなく DOM_VK_ENTER が出てくる環境ってあるの?

166:デフォルトの名無しさん
07/09/19 17:01:38
>>164
おおできたできた!ありがとうございます。
っていうかこれjavascriptスレで聞いたほうがよかったかもですね。

167:164
07/09/19 21:06:07
>>163
用途次第では onchange の方が適切な場合もあると思うけどまぁいろいろ試してくれ

168:デフォルトの名無しさん
07/09/24 16:53:14
大昔に野良拡張を作った経験があります。
色々な所で Gran Paradiso のことを目にするようになったので
先ほどα8を入れてみました。
ローカルディスクから拡張機能をインストールしようとしたらはねられて困ったのですが
とりあえずupdateURLを削除した状態で開発すれば良いんですかね。
色々と面倒になりましたな。

169:デフォルトの名無しさん
07/09/25 15:50:56
>>168
McCoy


170:デフォルトの名無しさん
07/09/26 14:17:48
about:config 風に、ロケーションバーに about:hogehoge と打ち込むと、
カレントタブの中に chrome が読み込まれるような拡張というのは
どんなことをヒントにすればよいですか?

171:デフォルトの名無しさん
07/09/26 15:33:32
>>170
MR Tech About:About をパクればいいんじゃないか?

172:デフォルトの名無しさん
07/09/26 16:45:30
>>171
非常に参考になりました。ありがとうございました。

173:デフォルトの名無しさん
07/09/29 07:25:22
>>171
今はnsIAboutModuleインターフェースが
変更されたからそのままだとtrunkで使えない気が。
getURIFlagsメソッドも実装しないといけないんじゃないの?
URLリンク(mxr.mozilla.org)

174:デフォルトの名無しさん
07/09/29 10:29:08
Browser#reload()でページのリロードができると思うんだけど、リロードじゃなくて、
ダウンロード済みのソースからDOMの再構築ってできないのかな?
リロードしちゃうとサーバに再リクエストしちゃうんで、セッション管理しているサーバで
ちょっと困っているんだけど。

175:デフォルトの名無しさん
07/09/30 01:44:57
DOMParserとか使ってみるといいかも

176:デフォルトの名無しさん
07/09/30 02:32:23
document.bodyをcloneNodeでコピーしておいて差し替えるとか、
あるいはdocument.body.innerHTMLをコピーしておいて差し替えるとか

177:デフォルトの名無しさん
07/10/19 23:37:01
>>303
これだな。とりあえずXHTMLのscript要素で代用しとけ。
URLリンク(bugzilla.mozilla.org)

178:デフォルトの名無しさん
07/10/19 23:38:01
微妙に誤爆しました。ごめんなさい。

179:デフォルトの名無しさん
07/11/02 22:52:17
IBM の developerWorks に XUL の記事きた。

「XUL を使ったブラウザー拡張機能、第 1 回: ユーザー・インターフェース機能を持つ Firefox のブラウザー拡張機能を作成する」

URLリンク(www-128.ibm.com)

180:デフォルトの名無しさん
07/11/03 02:39:56
XULRunner って響きが取っ付き易くないからいっそ Prism だったらよかったのにと思う11月の秋

181:デフォルトの名無しさん
07/11/03 03:36:16
URLリンク(labs.mozilla.com)

182:デフォルトの名無しさん
07/11/03 10:18:17
やっぱむずかしいよな。言うほど簡単じゃねぇよ、これ。
様々な難解技術の集合体じゃねえか。

183:デフォルトの名無しさん
07/11/03 14:07:29
browser.jsとか、タブ系拡張とかでの
content.focus(); と、_content.focus(); との違いは何?(頭のアンダーバー)
元のやつを上書きしてるって事?

184:デフォルトの名無しさん
07/11/03 20:54:14
>>183
歴史的理由。互換性。

185:デフォルトの名無しさん
07/11/03 21:09:52
>>183
どっちでも動くから気にしないでOK

186:デフォルトの名無しさん
07/11/12 20:57:34
大した事じゃないのですが、ちょっとお聞きしますね。

XPCOMを作っていて名前をどう付けるのが良いのか迷っています。
具体的にはContractIDとインターフェイス等の名前のプレフィックスについてで、
ContractIDは、いくつかの拡張を見たところ全部@mozilla.org/some-component;1となっていました。
プレフィックスは、Mozillaのソースではnsで始まるのが慣習のようでした。

Mozillaプロジェクトと直接関係がない拡張なのに、何故この様(mozilla.orgとかnsとか)に
なっているのか分かりません。
皆さんならどうされますか/してらっしゃいますか?

187:デフォルトの名無しさん
07/11/12 22:05:37
関係ないのにns~とか@mozilla.orgとか書くのは厳密には詐称だよね
Mozilla内の物でもインターフェース名がmozI~という物はいくつかあるし
適当に付けたらいいんじゃないの?


188:デフォルトの名無しさん
07/11/13 00:14:36
>>186
XPCOMだけにxpcIxxx~とかcpIxxx~とかどうよ?ださいけどな。

189:デフォルトの名無しさん
07/11/13 00:24:00
>>186
MDCのサンプルでは、
nsIHelloWorld
@dietrich.ganx4.com/helloworld
URLリンク(developer.mozilla.org)
でも個人的にはnsを付けるのはやめた方がいいと思う。
nsはNetScapeの略だとこのスレで以前に教わった。

190:デフォルトの名無しさん
07/11/13 05:51:48
(*゚ω゚)ノ∩へぇへぇ

191:デフォルトの名無しさん
07/11/13 10:14:10
接頭辞xpcはXPConnect関係で使われてるからよくないな。
作者名または拡張名から取るのがいいだろう。
例えばXUL/Migemoの場合、接頭辞はp(作者名Piroから?)、
コントラクトIDは@piro.sakura.ne.jp/xmigemo/から始まっている。
URLリンク(www.cozmixng.org)

192:デフォルトの名無しさん
07/11/14 00:31:47
自サイトではなくAMOでしか公開していない場合のコントラクトIDは?

193:デフォルトの名無しさん
07/11/14 01:40:49
同じ。AMO かどうかと、contruct ID は関係ない。

194:186
07/11/14 18:01:51
やはり、独自のprefix/ContractIDを付けた方が良さそうですね。
皆さん、助言ありがとうございます。

195:デフォルトの名無しさん
07/11/16 14:29:55
ここが適切かわかりませんが質問です。

IEで動作するActiveXのプラグインがあるのですが、これをFirefoxへ簡単に移植する方法はないでしょうか?
Windows以外のOSへの移植は考えていないので、ラッパーのDLLか拡張を作るという手でも構いません。

196:デフォルトの名無しさん
07/11/16 21:52:17
>>195
Firefox 1.5までなら、プラグインがありますよ

Mozilla ActiveX Project
URLリンク(www.iol.ie)

ソースコード
URLリンク(lxr.mozilla.org)

197:デフォルトの名無しさん
07/11/18 15:16:24
今、外部テキストファイルの読み書きをしているんですが、
全角文字を書き出しor読み込みすると文字化けしてしてしまいます。
文字コードの変換なども試したのですが上手くいきませんでした。
何か解決方法はないでしょうか?

198:デフォルトの名無しさん
07/11/18 15:33:00
どうやってどううまくいかなかったのかを書かないと
エスパーにしか解決方法はわからないと思われ

199:デフォルトの名無しさん
07/11/18 16:43:05
URLリンク(piro.sakura.ne.jp)
ここを参考にやらしていただきましたが、ファイルの書き出しなどを行った際、
日本語ではなく文字コードとして出力されてしまいます。

200:デフォルトの名無しさん
07/12/09 10:07:00
Fxのエクステンションを作ろうと思ってFxまとめWikiのチュートリアルを見ながら作業してたんですが、
contents.rdfってのは何のためにあるんですか?解説がなく、MDC見てもよく分からなかったんですが。

201:デフォルトの名無しさん
07/12/09 10:13:23
まとめにも書いてあるじゃないか

202:デフォルトの名無しさん
07/12/09 17:19:07
>>200

古い contents.rdf 形式のマニフェスト
URLリンク(developer.mozilla.org)

203:デフォルトの名無しさん
07/12/09 18:31:49
>>202
ありがとうございます。最新のFxをターゲットにする場合は不要なんですね。

204:デフォルトの名無しさん
07/12/10 17:47:01
ちょこちょこと拡張をいじったりしてみてます。
Firefox2.0.0.11なんですが、タブを右クリックした場合の
コンテキストメニューを拡張するにはどうしたらいいのでしょう・・・


205:デフォルトの名無しさん
07/12/10 18:08:04
で、あなたはまずご自分で何を調べられて何を試されたのですか?

206:デフォルトの名無しさん
07/12/10 19:42:16
>>205
CopyUrlPlusとTabMixPlus、ContextMenu拡張のアーカイブを展開して
内部を調べてみました。
しかしCopyUrlPlusではタブを右クリックしたメニューの拡張を行って無く、
TabMixPlusとContextMenu拡張は読み切れませんでした。OTZ

MDCのコードサンプル、DOMインターフェースリファレンスも調べましたが、
該当のものを見つけられませんでした。

207:デフォルトの名無しさん
07/12/10 23:38:49
>>206
userChrome.js のスクリプトあされば出てくるが…まぁ大ヒント。
document.getAnonymousElementByAttribute(gBrowser, 'anonid', 'tabContextMenu');

208:デフォルトの名無しさん
08/01/10 00:42:41
久しぶりにXUL弄ろうとおもって遊んでいたんですが
いつの間にかmakeURI関数って使えなくなっていませんか?
Mozilla開発コミュニティは相変わらずのクオリティだなと思った。嫌いじゃないけど

209:デフォルトの名無しさん
08/01/10 11:55:04
プラットフォーム書いてくれ。
firefox なら 2 でも trunk でも使えるはずだけど<makeURI
URLリンク(mxr.mozilla.org)
seamonkey だと前は2引数だったが trunk とかだと3引数なのを注意。
URLリンク(mxr.mozilla.org)
Prism, XULRunner なら contentAreaUtils.js 入れないとどーもならん、
つか実質3行なので自分で書け。

210:デフォルトの名無しさん
08/01/10 17:31:12
サイドバーを使うFirefox拡張の作り方がさっぱり分かりません。
どこかにサンプルとかありませんか?

211:デフォルトの名無しさん
08/01/10 18:09:07
sageとか

212:デフォルトの名無しさん
08/01/10 18:37:14
URLリンク(developer.mozilla.org)

213:デフォルトの名無しさん
08/01/10 20:37:30
>>212
おお、ありがとうございます!
すっかり見落としてました

214:デフォルトの名無しさん
08/01/16 17:22:29
var listbox = document.getElementById('searchResultList');
for(var i = 0; i < 10; i++) {
  var listitem = document.createElement('listitem');
  listitem.label = "foo";
  listbox.appendChild(listitem);
}

このようなコードを実行すると、listboxにアイテムは追加されるんですが、真っ白でlabelの内容が表示されません。
DOM Inspectorで見ればちゃんとlabelにfooが入ってるんですが…
どこに問題があるんでしょうか。

215:デフォルトの名無しさん
08/01/16 17:33:10
appendChild(...)でなくappendItem(...)としてみる

216:デフォルトの名無しさん
08/01/16 17:41:19
>>215
ありがとうございます。appendItem()でできました。
richlistboxだとappendChild()でできたのでついlistboxでもできるのかと思ってました。

217:デフォルトの名無しさん
08/01/21 17:12:44
groupbox
 - button
 - button
 - button

みたいな感じに、ある要素の子要素が複数あるときに、これ全部を一気に取り除く方法ってありますか?
やっぱりひとつずつ消してかなきゃダメ?

218:デフォルトの名無しさん
08/01/21 21:44:41
DOM2 Rangeつかうといいかも

219:デフォルトの名無しさん
08/01/23 11:51:44
>>218
ありがとうございます。
var range = document.createRange();
range.selectNodeContents(element);
range.deleteContents();
でできました。

220:デフォルトの名無しさん
08/01/31 11:46:40
Javascriptでaddonを書いています。
このaddon内部から、起動プロファイル名を取得することは可能でしょうか?
(firefox -P fuga の fugaを取得)
モノはFirefox 2.xです。


221:デフォルトの名無しさん
08/01/31 12:27:10
nsIToolkitProfileServiceを使えば可能。
toolkitのprofileSelection.jsが良い例題になる。

222:220
08/01/31 13:30:22
おおおズバリ。
名回答TNX.

223:デフォルトの名無しさん
08/01/31 23:24:20
firefoxの拡張作成に挑戦しようと思い、
URLリンク(piro.sakura.ne.jp)
の通りに自分で作成したものはツールのところにHello,Worldが表示されません。
アドオンの一覧には表示されています。
このサンプルコードであるURLリンク(piro.sakura.ne.jp)
はちゃんとツールのページの情報の下に表示されます。
両方のコードを見比べても自分でみた限り違いはありませんでした。
変更した部分は<em:maxVersion>2.0.0.*</em:maxVersion>だけです。
firefoxのバージョンは2.0.0.11です。

どこが問題か教えていただけますでしょうか?


224:デフォルトの名無しさん
08/02/01 15:16:30
お前が見た限りの情報で分かるエスパーはいねーよ馬鹿
教えて欲しいならコード載せろ

225:デフォルトの名無しさん
08/02/01 16:12:17
>>224
おっしゃるとおりです。すいませんでした。
コードはここにうpしました。
URLリンク(www.uploda.net)
どうかよろしくおねがいします。

226:デフォルトの名無しさん
08/02/01 16:50:26
>>225
すべての構成ファイルの文字コードUTF-8のBOMなしかどうか確認

227:220
08/02/01 18:09:46
profileSelection.jsは起動時にでてくるプロファイル選択画面みたいだ。

const C = Components.classes;
const I = Components.interfaces;
var p = C["@mozilla.org/toolkit/profile-service;1"];
alert(p);

ここでいきなりundefinedなのだが。
なんででしょう?
いや、classes配列にないのはわかるが、他のサービス(directory-service)とかだと
getService()できる。

firefox/components/*
firefox/chrome/*
は一応調べた。grepだけど。



228:デフォルトの名無しさん
08/02/01 18:11:16
>>226
すべての構成ファイルの文字コードを改めてUTF8BOMなしで保存し、
インストールしてみましたがやはりできませんでした。
エディタはTerapadを使っています。

229:デフォルトの名無しさん
08/02/01 18:48:55
>>228
>にすべての構成ファイルの文字コードを改めてUTF8BOMなしで保存し、
>インストールしてみましたがやはりできませんでした。

chrome.manifestをUTF-8のBOMなしで保存したら動作するけど...
エディタが勝手に変なことするんじゃない?

230:デフォルトの名無しさん
08/02/01 19:35:31
スレチな質問だとは思うんですが
UTF-8BOMなしで保存して、開きなおしたらUTF-8BOMなしで開くものですよね?
TerapadでもEmEditorでも開きなおすとSJISになってしまうんです。
他のUTF-8のファイルはちゃんとUTF-8で開くのですが...

231:デフォルトの名無しさん
08/02/01 19:50:22
BOMついてるのはバイナリエディタで確認できる
でchrome.manifest BOMついてますね。

エディタの件だが, 自動判定はあまり信用しない方がよろしいかと,
特にファイルに含まれる文字数が少ない場合は失敗する確率が高い,
BOMついてないUTF-8は特に判定が難しい。

使用エディタ変える方がいいんじゃない, 秀丸エディタとかNotepad++とか

232:デフォルトの名無しさん
08/02/01 19:55:06
>>230
TeraPadはUTF-8(BOMなし)を扱える。
君のTeraPadの設定がおかしい可能性が高い。
オプションの文字コード関係の設定をよく見直して。
これ以上はTeraPadスレで。

233:デフォルトの名無しさん
08/02/01 20:04:52
>>231
再度保存してみたものです。
バイナリエディタでみたところ各ファイルBOMはついてないようです。
URLリンク(www.uploda.net)

chrome.manifestを直したものはツールのところにhello world出てるってことですよね?

>エディタの件だが, 自動判定はあまり信用しない方がよろしいかと,
>特にファイルに含まれる文字数が少ない場合は失敗する確率が高い,
>BOMついてないUTF-8は特に判定が難しい。
なるほど。勉強になります。

234:デフォルトの名無しさん
08/02/01 20:37:02
連投失礼いたします。

直接extensionsフォルダから拡張を削除しもう一度インストールしたらできるようになりました。
どうもお騒がせしました。

235:220
08/02/06 14:31:27
結局
URLリンク(developer.mozilla.org)
を見て、プロファイルディレクトリが取れたのでよしとしました。


236:デフォルトの名無しさん
08/02/14 05:04:30
おまえらデバックする時どうしてる?
自分は書庫化し直してるんだが、これって一般的な方法?
どうも面倒くさい

237:デフォルトの名無しさん
08/02/14 05:08:44
>>236
アドオン開発環境のセットアップ
URLリンク(developer.mozilla.org)

238:デフォルトの名無しさん
08/02/14 06:26:53
>>236
>>237 の開発用の設定にして、jarに圧縮せず、-console オプションを付けて起動。

239:デフォルトの名無しさん
08/02/14 06:30:05
どもども

240:デフォルトの名無しさん
08/03/01 09:21:56
xulをプラットフォームとして使おうと思ったら、Firefox起動しない状態でも、ファイルをダブルクリックしたらXULアプリケーションが起動するような環境が必要だと思うのだが・・・

241:デフォルトの名無しさん
08/03/01 13:47:17
>>240
思うのだが?続きはなんでしょう?
URLリンク(developer.mozilla.org)

242:デフォルトの名無しさん
08/03/06 21:34:29
Firefox3でopenPopupの直後だとpanelのサイズが取得できない……。
2ではshowPopupの直後でもpopupのサイズ取得できたのになあ……。

それでもなんとかして取得したいんだが、どうすればいい?
欲を言えば、openPopup(showPopup)の前(非表示状態のとき)に
取得できるとなお良いんだが。

要はウィンドウ中央に表示させたいんだよね。

243:デフォルトの名無しさん
08/03/07 22:50:06
ポップアップは非同期になったんじゃなかったけ?
popupshowingかpopupshownで取得できるんじゃない?

244:デフォルトの名無しさん
08/03/08 00:13:50
>>243
できたよありがとう!

245:デフォルトの名無しさん
08/03/10 03:47:11
>241
…空が、青いなぁ…


orz

246:デフォルトの名無しさん
08/03/11 12:16:32
もともとのステイタスバーの上にテキストボックスとボタンを配置したいのですが
hboxにid属性をつけると表示されません。どうしてでしょうか?
以下ソースです。汚いですが。。。

<?xml version="1.0"?>

<overlay id="inputhelperOverlay"
xmlns="URLリンク(www.mozilla.org)">
<popup id="contentAreaContextMenu">
<menuitem id="show_InputHelper" label="InputHelper"
insertafter="context-undo" oncommand="show_IH()"/>
</popup>
<script src="Overlay.js" />
<hbox insertbefore="status-bar" id="ihbox">
<textbox multiline="true" width="400" rows="4" />
<button label="Copy"
oncommand="copy(); return false;"/>
</hbox>
</overlay>
</overlay>

247:デフォルトの名無しさん
08/03/11 14:42:51
>>246
オーバーレイを適用する親要素がない。

URLリンク(developer.mozilla.org)

248:デフォルトの名無しさん
08/03/11 14:47:06
<overlay id="inputhelperOverlay"
xmlns="URLリンク(www.mozilla.org)">
<popup id="contentAreaContextMenu">
<menuitem id="show_InputHelper" label="InputHelper"
insertafter="context-undo" oncommand="show_IH()"/>
</popup>
<script src="Overlay.js" />
<window id="main-window">
<hbox insertbefore="status-bar" id="ihbox">
<textbox multiline="true" width="400" rows="4" />
<button label="Copy"
oncommand="copy(); return false;"/>
</hbox>
</window>
</overlay>

これでどう?

249:デフォルトの名無しさん
08/03/11 16:19:32
>>247,248
できました!ありがとうございます!


250:デフォルトの名無しさん
08/03/14 23:39:42
addons.mozilla.org について教えてほしいのですが
・作者の項目にニックネームを表示する方法
・登録した拡張の削除の仕方
これらはどうやってやるのでしょうか?

作者がニックネームの人も居るので出来るかと思ったら
アカウントを作ったときの姓名が表示されてしまうし、
ファイルを削除は出来ても、登録された拡張は削除できないし、
わけわかめな状態になってます。

251:デフォルトの名無しさん
08/03/15 10:30:04
ログインした状態で右上の「アカウント」って所からニックネーム設定できるよ。
あと登録された拡張の削除はシステム的にできないみたい。
ファイルを消せばユーザからは見えなくなるのでそれで我慢するしかないぽ。
漏れなんて、この間からシステムの不調でアップロードが上手く行かなくて
管理画面上ではIncomplete - No Filesで同じバージョンの項目が3つ並んでる。


252:250
08/03/17 20:20:17
>>251
レスどうもです。

アカウントでニックネームを設定してみたのですが、
開発者用コンパネでは作者に姓名の方が表示されています。
作者の追加でも、アカウントから勝手に作者名を探すみたいで、
名前を自由に入れたりは出来ないみたいだし。
とりあえず姓名の方を適当に変更する事にします。

削除は出来ないんですね。
自分も同じバージョンのIncomplete - No Filesが3つ並んでますw

253:デフォルトの名無しさん
08/04/04 22:26:35
webサービス開発系のプログラマーは目の的!
firefox開発者って対して取り上げられていなくてかわいそうに
だっせぇwww

254:デフォルトの名無しさん
08/04/04 22:34:33
めのまと?

255:デフォルトの名無しさん
08/04/04 23:09:51
>>253
日本語でおk

256:デフォルトの名無しさん
08/04/04 23:42:29
めのてき(←なぜか変換できない)

257:デフォルトの名無しさん
08/04/04 23:57:14
目の敵と目の的の関係は既出と外出のそれに同じか。

258:デフォルトの名無しさん
08/04/05 10:23:56
Firefox 3のbrowser.jsのズーム機能のコードを眺めていたら
こんなふうにdeleteを使っているのですが、どういった意味があるのでしょうか?

// Content Pref Service
get _cps FullZoom_get__cps() {
delete this._cps;
return this._cps = Cc["@mozilla.org/content-pref/service;1"].
getService(Ci.nsIContentPrefService);
},


259:デフォルトの名無しさん
08/04/05 11:55:09
何かのタイミングで FullZoom._cps が書き換えられていても、
確実に ContentPrefService を返す。

ちなみに修正前はこんなコード
__cps: null,
get _cps() {
if (!this.__cps)
this.__cps = Cc["@mozilla.org/content-pref/service;1"].
getService(Ci.nsIContentPrefService);
return this.__cps;
},

URLリンク(bugzilla.mozilla.org) 修正前
URLリンク(bugzilla.mozilla.org) 修正後
URLリンク(mxr.mozilla.org) 現コード

260:デフォルトの名無しさん
08/04/05 13:32:00
御回答ありがとうございます。でも、なぜこうやらないんですか?
get _cps() {
return Cc["@mozilla.org/content-pref/service;1"].
getService(Ci.nsIContentPrefService);
},

261:デフォルトの名無しさん
08/04/05 23:07:54
getterが最初の一回のみ実行されるようにじゃないの
delete this._cps; によってgetterが削除されて
以降はthis._cpsに格納されたnsIContentPrefServiceを参照するようになる

262:デフォルトの名無しさん
08/04/06 00:20:04
なるほど。ありがとうございました。

263:デフォルトの名無しさん
08/04/07 22:15:25
gzip圧縮されたdiskキャッシュをnsIStreamConverterServiceの
convertで展開しようとしてるんだけどうまくいかのよね。

264:デフォルトの名無しさん
08/06/12 17:51:13
Firefoxを多重起動したときに連動するように
したいんだが、どうすりゃいいんだ??

265:デフォルトの名無しさん
08/06/15 18:24:36
RDFから作成したlistboxをもう一度、RDFから作成しなおす方法はありませんか?

266:デフォルトの名無しさん
08/06/15 21:24:53
よくわからんが、builder.rebuild()じゃだめなの?
XUL:Property:builder - MDC
URLリンク(developer.mozilla.org)

267:デフォルトの名無しさん
08/06/16 22:18:32
ありがとうございます。
builder.rebuild()ではファイルからの再読み込みはしないようです。
別の方法を考えます・・・・。

268:デフォルトの名無しさん
08/06/17 23:14:24
>>267
多分nsIRDFServiceのUnregisterDataSourceでいったんデータソースを開放しないとダメ。

269:デフォルトの名無しさん
08/06/18 00:24:07
leakmonitorを入れてみたら、以下のようなコードもリークしてるよと
報告されました。
document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function(e) {
if (e.target == this) myextension.showContextMenu(this);}, false);

やっぱりちゃんと handleEvent メソッドを備えたオブジェクトをリスナーとして登録して、
window の unload 時に removeEventListener した方がいいんでしょうか?

まだまだ良く分かっていないので、とんちんかんな質問かもしれませんがよろしくお願いします。

270:デフォルトの名無しさん
08/06/18 01:04:47
>>269
handleEventを使う必要はないと思うけど
removeEventListenerはしておいた方が安全そう

271:デフォルトの名無しさん
08/06/22 06:11:08
 <tabbox id="tabBox" orient="vertical" flex="1">
  <tabs>
   <tab label="tab1" id="tab1"/>
   <tab label="tab2" id="tab2"/>
   <!-- 以下、tabたくさん -->
  </tabs>
  <tabpanels id="pagePanels" flex="1">
   <tabpanel id="1">
    <html:iframe type="content" id="iframe1" src="~" flex="1"/>
   </tabpanel>
   <tabpanel id="2">
    <html:iframe type="content" id="iframe2" src="~" flex="1"/>
   </tabpanel>
   <!-- 以下、tabpanelたくさん -->
  </tabpanels>
 </tabbox>

このようなXULをウィンドウコンテント領域に表示させると、
多数のタブのブラウザに入りきらない部分が見切れてしまい、
矢印キーなどでフォーカスは当たるが表示されない状態になってしまいました。
また、それに合わせてtabpanelも広がってしまい、右端の部分が表示されません。

これを、タブを多段表示にする、またはスクロールバーなどを出す、など
何らかの方法でブラウザ内に収まりきるようにしたいのですが
どうしたらいいんでしょうか?
flexを外したりorientをhorizontalにしたりしても
tabpanelが縮んだりタブが縦に広がったりとうまくいきません。
また、cssでwidth:100%などしても効果がありませんでした…。

272:デフォルトの名無しさん
08/06/22 08:03:49
それこそtabbrowser.xmlを参考にしてみたらいいんじゃない?>スクロール
Tab Mix Plus等のコードを見てみれば多段表示についてもヒントが得られるかと。

273:デフォルトの名無しさん
08/07/14 21:18:52
レビューでバグについて報告があったんだけど、
自分の環境では再現されない。
この場合どういう反応をすればいいんだろうか。

274:デフォルトの名無しさん
08/07/14 22:20:59
TMPの作者に倣ってみるとか
URLリンク(tmp.garyr.net)
URLリンク(tmp.garyr.net)

275:デフォルトの名無しさん
08/07/15 01:12:56
>>274
どうも。とりあえず
他のアドオン無効でチェックしてみて、まだ問題あるなら連絡してくれ
という意味(のつもり)の文を書いといたよ。
あんだけの文章でどれだけ時間掛けてるんだ俺……英語力のなさに失望orz

276:デフォルトの名無しさん
08/07/26 10:35:19
ボタンを通常のクリックしたときとミドルクリックしたときで実行する処理を分けたい場合
どうすればいいですか?
oncommandでevent.buttonの値を調べてもundefinedとなってしまいます。

277:デフォルトの名無しさん
08/07/27 03:49:37
onclickでやるしかないんじゃないかな
通常クリック→oncommandで捕捉
ミドルクリック→onclickで捕捉(通常クリックは無視)

278:デフォルトの名無しさん
08/07/27 12:21:07
>>277
その方法でいけそうです。ありがとうございました。

279:デフォルトの名無しさん
08/09/25 04:44:00
>>592
設定出来ない。
ツール(外部アプリ)でいじれるかも知れない。

>>593
saveImageURLって何
URLリンク(forums.mozillazine.jp)
URLリンク(forums.mozillazine.org)
スレリンク(tech板)
で聞く方が良いのでは?

拡張機能で同様の機能を持つものはいくらでもあるけど。

280:279
08/09/25 04:45:25
誤爆した。

281:デフォルトの名無しさん
08/09/29 00:44:10
Visual Basic2008にXULRUNNERを組み込もうとしています
表示まではあっさり行ったのですが、プログラムでブラウザをコントロールするところがうまくいきません

ページ上の各要素に対してコントロールしたいのですが
IEのように、各種Htmlコントロールでコントロール出来ないのです
ここからサンプル--------------------------------
'ブラウザメモリ確保
IE = New WebBrowser
Moz1 = New AxMOZILLACONTROLLib.AxMozillaBrowser
Moz2 = New AxMOZILLACONTROLLib.AxMozillaBrowser
Dim heOut As HtmlElementCollection

heOut = Moz2.Document   '代入した瞬間にエラー
'heOut = IE.Document.All'うまくいく

heOut.GetElementsByName("srchtxt")(0).InnerText = "検索用です"
heOut.GetElementsByName("srchbtn")(0).InvokeMember("click")
ここまでサンプル--------------------------------
HTMLコントロールはIE用に用意されているので、何らかのキャストが必要かと思うのですが
MOZILLA側で、各要素をコントロールするにはどうすればいいのでしょう
MOZILLAのメソッドを色々探しているのですがなかなか見つからず難儀しています

282:plus7 ◆DHcM3x9Sng
08/09/29 12:33:01
HtmlElementCollectionにHtmlDocument代入しようとすればエラーになるのは当然では
あと微妙にスレ違い

283:デフォルトの名無しさん
08/09/29 19:28:57
いやまあ・・エラーになって当然なんだけど
Mozillaでも似たようなクラス無いのかなぁ・・・と。

目的はプログラムから直接画面上のテキストやらボタンやらにアクセスしたいんです
すれ違いなの?

284:plus7 ◆DHcM3x9Sng
08/09/29 22:51:58
GeckoのActiveXコントロールはわざわざIEコンポーネントの機能を
エミュレーションしているので、一部(つーか大半)使えない機能がある。
だが、document.allには対応してそうな感じ。
URLリンク(mxr.mozilla.org)
getElementsByNameは見た限りでは見つからない。innerTextはいけるっぽい。
URLリンク(mxr.mozilla.org)

とまあ苦労するのが目に見えているので、.NETでGeckoをより深く制御したいならこのコンポーネントを使ったほうがいい。
URLリンク(code.google.com)

>すれ違いなの?
>>1は読んだのかね?

285:デフォルトの名無しさん
08/09/30 00:55:40
283です
ありがとうございます。
そんなコンポーネントを作ってる人がいるとは。
週末に試すようにします。

姉妹スレ できけってことかと思うんですが、ブラウザ自体を作りたいわけではなかったので・・・
あ、でもこちらは拡張の作り方か・・・すいません。

286:デフォルトの名無しさん
08/10/04 17:20:26
ちょっと紹介させてください。
XULのUIデザイナみたいなものを作ってみました。
まだ不安定ですが、よかったらどうぞ。
URLリンク(kukuru.s7.xrea.com)

287:デフォルトの名無しさん
08/10/04 19:32:33
>>286
マルチプラットフォームのようですが、何で作られたんですか?
あと、Mac 版はないのでしょうか?

288:286
08/10/04 19:56:30
>>287
XULの実行環境であるXULRunnerを使って作りました。
XULRunnerはMac版もあるので、動くと思うのですが、
手元にMacがないのと、実行の仕方がちょっと違うので、
少し考えているところです。XULRunnerのページが参考になると思います。
URLリンク(developer.mozilla.org)

289:デフォルトの名無しさん
08/10/04 20:15:44
Firefox 3があるなら
Firefox -app application.ini で起動できるんじゃない?

290:デフォルトの名無しさん
08/10/19 00:37:24
下のプログラムなんですが、WEBサーバに配置してみると動かなくなります。
signed.applets.codebase_principal_supportをtrueにする以外の方法(正規の方法?)
で動くようにするにはどうしたらよいのでしょうか?
署名スクリプトなんでしょうか?・・

<html>
<head>
<title>Execute Any Process</title>
<script>
function executeFile() {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var file =
Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\windows\\notepad.exe");
var process =
Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file);
var args = ["test.txt"];
process.run(false, args, args.length);
} catch (e) {
alert(e);
}

}
</script>
</head>
<body>
<input type="button" value="Run a process" onclick="executeFile()"/>
</body>
</html>

291:デフォルトの名無しさん
08/10/19 01:51:04
正気?

292:デフォルトの名無しさん
08/10/20 01:00:52
なんで?

293:デフォルトの名無しさん
08/10/26 09:11:24
>>290
file.initWithPath("c:\\windows\\notepad.exe");
こんなことやろうと思うのはXULだからだろうか。
いや、別にいいと思うんだ。いろいろ自動化できるし。
でもなんでサーバーに置こうとか思うんだろう。
無理に決まってるだろ。セキュリティ的に。


俺は何を言おうとしたんだろう。辺なののこって他。
ーーーーーーーーーーーーーーーーーーーー
PyXPCOM Mozillaの3万近いファイルを全部ビルドせないかん
→ javaXPCOM これもいっしょ
→ XULRunner HTMLのような定義ファイル+javaScript

XPConnectなら標準機能だが、JavaScriptのみのサポート


294:デフォルトの名無しさん
08/10/27 17:02:35
Firefoxタブの挙動の検知を利用したプログラムを作成したいと考えているのですが、
どうすればそのような検知が可能でしょうか?

現在何番目のタブを開いている(閉じた)であるとか、タブの位置を何番目に移動したなどを検知したいです。
そのような手法、あるいは似たプログラム等ご存知の方教えて頂けないでしょうか。
よろしくお願いします。

295:デフォルトの名無しさん
08/10/27 18:46:09
>>294
URLリンク(developer.mozilla.org)

296:デフォルトの名無しさん
08/10/28 12:16:08
>>295さん
ありがとうございます!参考にして作成してみます。

297:デフォルトの名無しさん
08/11/07 09:59:13
about:blankが表示される度に実行するプログラムを作成したいのですが
どんなコードを書けばできるのかわかりません。



298:デフォルトの名無しさん
08/11/07 10:42:52
ページの読み込みを監視するとか?
新しくタブを開いたらまずabout:blankが表示されるからその分は除外しないといけないけど。(canBackを見るなどして)


299:297
08/11/07 11:23:54
>>298
すみません、言葉が足りませんでした。
about:blankの判定する方法がよくわからないんです。
loadURI == null
で試してみたのですが

ページの読み込みってProgressListenerを使えばいいんでしたっけ?


300:デフォルトの名無しさん
08/11/07 11:39:17
var tab = gBrowser.selectedTab;
if (tab.linkedBrowser.currentURI.spec == 'about:blank' && tab.linkedBrowser.sessionHistory.count > 1) {
...
}
任意でabout:blankを読み込んだ時はこれで判定できるはず。新規タブの場合も含めるなら二つ目の条件は不要。
ページ読み込み監視はProgressListenerを使ってもいいし、gBrowserでDOMContentLoadedイベントを拾ってもいけるんじゃないかと。
gBrowser.addEventListener('DOMContentLoaded', function(aEvent) { alert(aEvent.originalTarget.defaultView.location.href); }, true);


301:デフォルトの名無しさん
08/11/07 12:03:09
>>300
ありがとうございます。参考にさせていただきます。
卒研でXULに挑戦しているのですが助かりました。


302:デフォルトの名無しさん
08/11/22 15:35:55
質問です。

1年ぐらい前にXUL勉強してて、最近やり直そうと思い

URLリンク(developer.mozilla.org)

↑見ながら再び勉強してるんですが、
chrome以下にディレクトリ作って、manifestファイル置いただけでは
例えば以下のように、

chrome://findfile/content/findfile.xul

chrome経由でブラウザで確認ってできなくなってますか?
拡張としてインストールしてからでないとだめなんでしょうか。




303:デフォルトの名無しさん
08/11/22 16:44:13
manifestファイルはどう書いた?
以下のように書いてあればいけるはず

XULファイルの場所:
C:\Program Files\Mozilla Firefox\chrome\testfiles\findfile.xul

manifestファイルの場所:
C:\Program Files\Mozilla Firefox\chrome\testfiles.manifest

testfiles.manifestの内容:
content findfile testfiles/


304:デフォルトの名無しさん
08/11/22 17:07:09
なんでprogram files直下に置くの?
プロファイルのextensionsディレクトリにおけばいいよね?

305:デフォルトの名無しさん
08/11/23 22:56:56
>>303
>>304

レスサンクス。
マニフェストファイルには、パスを
file:///findfile/content/
て書いてたんですが、file:///除去して、後文字コード見直したらうまくいきました。

306:デフォルトの名無しさん
08/11/25 13:32:56
もう解決したようだからいいんだけど、file:に書くのは絶対パスだよ。
>303の位置だったら、相対パス指定で testfiles/ と書いている部分を絶対パスで書くと
file:///C:/Program%20Files/Mozilla%20Firefox/chrome/testfiles/
になる。


307:デフォルトの名無しさん
08/12/02 03:51:25
Firefox 3.1b1で
XULのtextboxのwrap="off"が反映されず、右端で自動改行されてしまいます。
CSSのwrap周辺が変更された影響だと思うんですが
どう対応すればいいんでしょうか?

まったく同じコードで3.0.4では自動改行されません。

style属性でwhite-space:pre;としても変化ありません。


308:デフォルトの名無しさん
08/12/02 12:50:28
君が試しているのがベータ版だということが認識できていれば、
とるべき行動は自ずと明らかではないだろうか。

309:307
08/12/02 17:08:11
>>308
?????

バグ報告ですか?


バグならバグでいいんですが
そう断定するにはそれなりに情報を集める必要があるので

・既知の問題かどうか
・試してみるべきことはあるか
・バグの可能性があるか
・ハック的なものでもいいので回避策があるか

などの次のステップにつながる情報を
いただけるかと思い質問してみたんですが・・・


310:デフォルトの名無しさん
08/12/02 22:53:43
ベータを扱っててどうすればいいんでしょうかもクソもないだろ
ベータを何だと思ってんの?馬鹿なの?死ぬの?

311:デフォルトの名無しさん
08/12/02 23:04:48
>>309
Bugzilla@Mozilla
URLリンク(bugzilla.mozilla.org)
自分で調べる。

312:デフォルトの名無しさん
08/12/02 23:11:50
>>311
bugzillaはざっと見てみましたがwrap関係の報告はあるものの
今回の件に該当するものがないっぽいです。

で同じような状況の人がいないかなーと書き込みを


こういうのもダメ? >>310

313:デフォルトの名無しさん
08/12/02 23:24:12
>>307
以下をExample.xulと言う名で保存, FxにD&D,
別に問題ないように見えるけど, 何が問題でどうしたいの?
バグ報告するにしてもそれなりにしないと相手にしてもらえないよ。

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="example-window" title="Example"
xmlns:html="URLリンク(www.w3.org)"
xmlns="URLリンク(www.mozilla.org)">
<textbox multiline="true" wrap="off"
value="XULのtextboxのwrap="off"が反映されず、右端で自動改行されてしまいます。CSSのwrap周辺が変更された影響だと思うんですがどう対応すればいいんでしょうか?"/>
</window>

314:デフォルトの名無しさん
08/12/02 23:43:35
>>313
試しました。

3.0.4では自動改行されず水平スクロールバーが出ます。
3.1b1では自動改行されて水平スクロールバーは出ません。



315:デフォルトの名無しさん
08/12/02 23:45:59
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1b3pre) Gecko/20081201 Minefield/3.1b3pre
問題ない

316:デフォルトの名無しさん
08/12/02 23:46:46
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5pre) Gecko/2008120105 GranParadiso/3.0.5pre ID:2008120105
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3pre) Gecko/20081201 Shiretoko/3.1b3pre ID:20081201204426
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20081201 Minefield/3.2a1pre ID:20081201202728

で試したけど, 全部同じ結果で問題ないよ。

>>314
3.1b1って何? そんなどこにもないぞ

317:デフォルトの名無しさん
08/12/02 23:47:58
古すぎるものでバグ出されても無死されるだけだぜ

318:デフォルトの名無しさん
08/12/03 00:06:03
>>315,316,317
↓これで試していました。
URLリンク(www.mozilla.com)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.1b1) Gecko/20081007 Firefox/3.1b1

確かに古いようです。
最新で試してきます。

319:デフォルトの名無しさん
08/12/03 00:16:56
人に言われないと古いという根本的な問題に気付かないような人はベータ使うのやめた方がいいと思うよ

320:デフォルトの名無しさん
08/12/03 01:18:45
>>319
激しく同意。

321:デフォルトの名無しさん
08/12/04 08:50:30
XULの拡張を作ってます。
タブごとのセッション情報を保持したいと思っているのですが、どんな方法があるのでしょうか。

322:デフォルトの名無しさん
08/12/04 09:17:44
URLリンク(addons.mozilla.org)
中にある tab_history.js を見れ

323:デフォルトの名無しさん
08/12/04 10:38:07
Firefoxのインストール先の componentsフォルダにある
nsSessionStore.js の中を見るのがいいと思う

324:デフォルトの名無しさん
08/12/08 08:36:15
AMOの統計ダッシュボードの今週のデータおかしくない?
確認したアドオンすべてでアクティブユーザ数が
軒並み-95%ぐらいになってるんだが

水曜に集計してデータに反映されるまでタイムラグあるから
そのうち正常値にもどるかと思ってたが今のとこ変化なし。

325:デフォルトの名無しさん
08/12/16 03:49:57
Firefox3のJavascriptのXPCOM内で
与えられたあるフォルダのサブフォルダも含めた
ファイル一覧を取得しようとしています。

現在再起処理では問題なく実現できていますが
ファイル数が多いと重くなってしまいます。

非同期で処理したいのですが何を使えばいいんでしょうか?



326:325
08/12/16 06:09:26
自己解決しました。
nsITimerでいけますね。

327:デデフォルトの名無しさん
08/12/19 12:59:03
XULでツールバーにボタンをつくってそれに戻る、進むの処理をさせた
いんですけど、どうすればわかりません。よければ教えてください。

328:デフォルトの名無しさん
08/12/19 18:58:13
よくないので教えません

つか、戻る進はもうあるじゃん

329:デフォルトの名無しさん
08/12/19 19:07:24
>>327
command に
Browser:BackOrBackDuplicate
Browser:ForwardOrForwardDuplicate
を登録すればよいんジャマイカ
後はその他色々

330:デフォルトの名無しさん
08/12/21 02:12:07
「パスみえ」のようなUIを実現したいのですが、どうしたらいいか見当もつかず困っています
何かヒントをいただけませんか

331:デフォルトの名無しさん
08/12/21 17:25:18
パスみえとやらのソースをもらって解析してみればいいんじゃないでしょうか

332:デフォルトの名無しさん
08/12/21 18:05:05
URLリンク(quickware.a-quest.com)
これか? 右クリックとか D&D にこだわらなければ楽だ。用途にもよるが

333:デフォルトの名無しさん
08/12/21 19:18:27
>>331
パスみえを解析してもXULプログラミングは出来ないと思います

>>332
D&Dでドロップターゲットを取得するところまでが分かりません
右クリックは使用しません

334:デフォルトの名無しさん
08/12/21 21:07:03
似たような拡張のコードは見たのか?普通にあると思うけど

335:デフォルトの名無しさん
08/12/22 11:06:18
URLリンク(developer.mozilla.org)
汎用にするとしたらdragendでドロップ位置を取って座標で要素を取得すればいいと思ったけど
Firefox 3.0.5で試してみたけどdragendではscreenX, screenYはどちらも0になるので難しそう。

Firefox上で表示されてるパスワード入力欄についてだけパスみえのように動作するアドオンを作りたいのなら
こんな感じでどうだろう。
1.draggestureかdragstartイベントで以下の事をやる。
 ・application/x-pasumie-targetのような独自の型でデータを登録する。
 ・全ウィンドウの全フレームのパスワード入力欄に、この型のデータを受け取るdragdropかdropのイベントリスナを登録する。
2.ドロップ先要素のdragdropかdropのイベントリスナでドロップされたパスワード入力欄を特定して、パスワードを表示させる。
3.ドラッグ元要素のdragendで、全ウィンドウの全フレームのパスワード入力欄に登録したイベントリスナをremoveEventListenerする。


336:デフォルトの名無しさん
08/12/22 11:08:54
>全ウィンドウの全フレームのパスワード入力欄に
全ウィンドウの全フレーム だけでよかったスマソ

337:330
08/12/22 20:42:18
>>336
今回はまさにFirfox内の要素のみを対象として考えていました
大変分かりやすい解説をありがとうございました

338:デフォルトの名無しさん
09/01/08 19:15:35
コマンドラインのフロントエンドを作ろうとしてます。
nsIProcessだと実行しかできないようですが、
標準出力を拾う方法は無いでしょうか?

339:デフォルトの名無しさん
09/01/08 21:16:03
>>338
以前調べた限りでは
URLリンク(www.mozdev.org)
にそういう機能があるらしいけど使ったことがないから何とも言えない。

URLリンク(bugzilla.mozilla.org)
でこれをMozillaに入れるとか入れないとかしているみたい。

340:デフォルトの名無しさん
09/01/09 00:00:18
>>339
ありがとうございます。
連休にでも読んでみようと思います。

しかし、標準のままじゃできないんですね…

341:デフォルトの名無しさん
09/01/16 15:03:56
contentフォルダにsample.xulとsample.jsファイルをいれてます。
sample.jsのプログラムがうまく動きません。他に必要なファイルがあれば教えてください。

342:デフォルトの名無しさん
09/01/21 04:47:13
try {
  Components.classes["@mozilla.org/browser/sessionstore;1"]
    .getService(Components.interfaces.nsISessionStore)
    .persistTabAttribute('hoge');
} catch (e) { }

browser.sessionstore.enabled が false のときエラーになると聞いて try-catch したのに
どっちにしろ謎のエラーが・・・
ちゃんと pref 見ないとだめか

343:デフォルトの名無しさん
09/02/01 01:14:09
URLリンク(hg.mozdev.org)
こーゆーモジュールをガシガシ書いてもらって標準化してほしいぜ(それなんて jslib
FUEL はいったい何を目指しているのか…このスレを加速させる燃料にもならないぜ…

344:デフォルトの名無しさん
09/02/02 17:12:42
FUELはただのラッパだよ。正露○じゃないよ。

345:デフォルトの名無しさん
09/02/02 23:53:32
そういえばFirefox 2系が公式にサポート切れたからFUELがんがん使ってももう問題ないんだな

346:デフォルトの名無しさん
09/02/03 20:56:31
そういう問題じゃないだろ

347:デフォルトの名無しさん
09/02/03 20:58:30
なんで mozcrt19.dll 存在するの?

348:デフォルトの名無しさん
09/02/04 00:45:29
malloc を書き換えてるから。詳しくは firefox jemalloc でググれ

349:デフォルトの名無しさん
09/02/06 23:52:54
>>348
勉強になったよ

350:デフォルトの名無しさん
09/02/10 15:19:59
履歴を表示できるのですが、その表示されたURLをクリックしてもそのサイトに移動しません。
HTML要素を追加したがうまくできないです。誰か教えてください。

351:デフォルトの名無しさん
09/02/11 01:24:08
まず質問を他人にも理解できる日本語で書き直してください
次にスレッドタイトルを読み、質問するのに適切なスレッドであったか確認してください

352:デフォルトの名無しさん
09/02/11 01:47:41
真性だな、こりゃwww

353:デフォルトの名無しさん
09/02/12 00:07:25
StorageのAPI使ってplaces.sqliteから情報を取り出す処理を書いています。
Firefox3.0ではopenDatabaseで新規に接続ハンドルを作る必要があると思いますが、
作った接続ハンドルは用がなくなったらすぐにcloseした方がいいですか?
それとも次回使うときのためにポインタを保持しておいても問題ないですか?

354:デフォルトの名無しさん
09/02/13 22:32:58
places.sqlite のDBハンドルを close すると bookmark が追加変更できなくなったりしない?
保持してても問題ないと思う。

355:デフォルトの名無しさん
09/02/14 00:59:58
Firefox3.1だとAPIによってハンドルが一本化されているので、
closeするとブックマークが使用できなくなりますね。
ありがとうございました。

356:デフォルトの名無しさん
09/02/16 00:17:03
コマンドラインから
firefox.exe -chrome "c:\app.xul"

とすれば単体でXULアプリとして起動できますが
このとき以下のようにxulファイル以外の引数を同時に渡し、
firefox.exe -chrome "c:\app.xul" "hoge" "foo" "bar"

app.xul内でwindow.arguments[n]としてアクセスできませんか?
window.arguments.lengthはなぜかいつも5で、中身は全部nullです。


357:デフォルトの名無しさん
09/02/16 03:08:27
っ[ URLリンク(developer.mozilla.org) ]


358:デフォルトの名無しさん
09/02/16 12:09:01
>>357
あーまさにこれです。
ありがとうございました

359:デフォルトの名無しさん
09/02/18 18:40:51
履歴をツリー状に表示するアドオンもしくはそのようなサンプルプログラム
を載せているサイトを教えてくださるとうれしいです。

360:デフォルトの名無しさん
09/02/18 18:48:58
履歴をツリー状にって・・・Firefox自体のコード見たらいいんじゃないの?
サイドバーとかブックマークの管理とか

361:デフォルトの名無しさん
09/02/25 04:04:14
-no-remoteで別インスタンスで起動しているウィンドウ間で
データをやりとりする方法ってありませんでしょうか?

362:デフォルトの名無しさん
09/02/26 16:24:22
現在開いてるwebページのURLを取得して表示させるプログラムをXULでつくりたい
のですが、何か良い参考サイトやプログラムありませんか?

363:デフォルトの名無しさん
09/02/27 02:24:19
Firefoxのロケーションバー

364:デフォルトの名無しさん
09/02/27 13:23:47
>361
ソケット通信使うのが正道だと思う

>362
Firefoxのメインウィンドウの中なら
gBrowser.currentURI.specかcontent.location.hrefで
今開いてるページを取れる


365:デフォルトの名無しさん
09/03/03 16:36:15
Firefox3で終了なのか再起動なのかはどうやったら判定できますか?

quit-application-granted 時に
終了か再起動かで処理を分岐させたいのですが

366:デフォルトの名無しさん
09/03/03 20:53:32
URLリンク(mxr.mozilla.org)
quit-applicationの方のdataで判別できるみたいだよ

367:デフォルトの名無しさん
09/03/04 02:01:36
>>366
できました。

本当にありがとうございました!


368:デフォルトの名無しさん
09/03/05 14:24:48
ブラウザやwebサイトの読み込み完了時にスクリプトを処理するにはどうすればいいですか?

xulファイルに

window.onload = "aaaa();" //aaa();は作った関数

と記述したのですがうまく動作しません

369:デフォルトの名無しさん
09/03/05 15:27:48
>>368
JavaScript本を買って一から勉強し直してください

370:574
09/03/05 22:56:18
正解は
window.onload = aaaa;
しかし、この次元で躓いているとXUL関連やFIrefoxの拡張は敷居が高いよ。
まだまだマニュアルや情報源の情報源の十分に整備された世界ではないから…


371:デフォルトの名無しさん
09/03/06 00:30:14
From: [370] 574 <>
みっ、みらいじんだー。

もしかしたら、これを期に勉強して成長した、未来の>>368が、
自らを叱咤激励するために、書き込んだのか~?


372:デフォルトの名無しさん
09/03/07 19:13:32
nsILocalFileのdirectoryEntriesのgetNext()で取得できる
ファイルエントリの順番って保障されてますか?

373:デフォルトの名無しさん
09/03/07 22:24:07
いいえ。

374:デフォルトの名無しさん
09/03/09 00:49:43
>>373 ありがとうございます

375:デフォルトの名無しさん
09/03/11 09:14:18
Firefox3のProfileManagerに
アドオンから改造を加えることって可能?

376:デフォルトの名無しさん
09/03/15 08:50:18
Windowsの自作アプリケーションから、「現在起動中の」Firefox3にクッキーをセットしたいのですが、
どうしたらできるでしょうか?

IAccessible->IServiceProvider->ISimpleDOMDocument->IDOMHTMLDocumentで余裕とか考えていたのですが、
XPCOMがCOMじゃないということに気が付くのに丸2日かけてしまいましたorz
IEばかり使ってきたのでよくわかかりません…

377:デフォルトの名無しさん
09/03/15 08:53:29
あっ、XULの話題のスレみたいなので他所行った方がいいのかな

378:デフォルトの名無しさん
09/03/15 18:26:38
正攻法だと無理かも。

379:デフォルトの名無しさん
09/03/15 18:43:36
IServiceProviderでnsSupportsは取れるみたいなんですが
nsSupports以外の何物でもありませんでした…ダメか…

380:デフォルトの名無しさん
09/03/16 12:18:34
>>379
nsSupports.QueryInterfaceしてキャストでいけない?

381:デフォルトの名無しさん
09/03/17 15:18:54
ひょっとしてFirefoxのsqliteはメモリ上にデータベース作成できない?

382:デフォルトの名無しさん
09/03/17 21:48:18
mozIStorageService.openSpecialDatabase("memory")

383:デフォルトの名無しさん
09/03/20 16:04:11
>>382
ありがとうございます。

openDatabase(null)
でもいけるみたいですね。

384:デフォルトの名無しさん
09/03/24 04:30:25
nsIFileでファイルのlastModifiedTimeは書き換えできますが
ディレクトリのlastModifiedTimeは書き換え不可なのでしょうか?
必ず例外NS_ERROR_FILE_ACCESS_DENIEDが発生します。

パーミッションは確認しましたし
そのディレクトリを使用中なわけでもありません。

具体的にやりたいのは
新規ディレクトリ、もしくは既存のディレクトリの
lastModifiedTimeを任意の値に変更する
ということです。

385:デフォルトの名無しさん
09/03/24 07:44:36
URLリンク(mxr.mozilla.org)
URLリンク(mxr.mozilla.org)
URLリンク(mxr.mozilla.org)
実装を見ればどこに原因があるか分かるかも?

386:384
09/03/24 10:22:49
>>385
とりあえずわかったことはWindows限定の問題だということです。
Ubuntu8.10とLeopard10.5.2では書き換え可能でした。

Win2000SP4/WinXPSP3/WinVista(SPなし)とWin7で同じく
ディレクトリのlastModifiedTime書き換え試行時に
NS_ERROR_FILE_ACCESS_DENIEDが発生します。

Firefox3.0.7で実行しています。


提示されたソースのほうはC++が書けないので
なんとなくしか理解できず原因を特定するのは難しそうです。

何か試してみた方がよさそうなことはありませんか?

387:デフォルトの名無しさん
09/03/24 22:33:16
>>385
ディレクトリの時刻を変更するには、CreateFile()でFILE_FLAG_BACKUP_SEMANTICSを
指定する必要があるが、それがないから無理だな。

388:384
09/03/25 00:44:38
>>387
つまりLinux版やMac版ではFILE_FLAG_BACKUP_SEMANTICSがあるけど
Windows版ではそれがないのでディレクトリ更新時刻は書き換え
できないということですか?

なぜWindows版だけそんな仕様に・・・?

389:デフォルトの名無しさん
09/03/25 01:34:30
>>388
そういうレベルの話ではない。
更新時刻の変更はOSによってやり方が全然違っていて、CreateFile()云々は
Windows固有のやり方。それに加えて、WindowsではUnixとは異なり、
ファイルと同じ方法ではディレクトリの更新時刻は変更できない。

390:384
09/03/25 01:45:04
>>389
なるほど。では結論として、

Windows上のXULアプリからはディレクトリの
lastModifiedTimeは変更できない

と考えて問題ありませんか?

妥協策としてnsIProcessでWindowsアプリをrunして変更する
といった方法で対応するしかないという理解でいいでしょうか?

391:デフォルトの名無しさん
09/03/25 10:40:54
興味本位で聞くけどそもそも何故ディレクトリの更新時間を変更したいの?
それって本当に必要なの?

392:デフォルトの名無しさん
09/03/25 12:47:18
>>391
2つのディレクトリ間の同期をとる処理を書いています。
それでディレクトリの更新日時まで同期したいわけですが


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