MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
[XULRunnerアプリケーション]初期化処理のタイミングが分からない https://forums.mozillazine.jp/viewtopic.php?f=28&t=7840 |
ページ 1 / 1 |
作成者: | mitsugu [ 2008年10月02日(木) 10:01 ] |
記事の件名: | [XULRunnerアプリケーション]初期化処理のタイミングが分からない |
【現象】 以下のコードが Ubuntu 8.04.1 のアプリケーション起動時は動作し、WindowsXP SP3、Windows2000 SP? では動作しない。 コード: function init()
{ var src; var dest; // get full-path-name of zip database file var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile); file.append("zip.sqlite"); if (!(file.exists())) { src = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("CurProcD", Components.interfaces.nsIFile); src.append("zip.sqlite"); dest = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile); src.moveTo(dest,''); } return; } 【環境】 OS:Ubuntu 8.04.1 WindowsXP SP3 Windows2000 SP は不明 プラットフォーム: XULRunner 1.9.0.3 ( Linux 版、Windows 版 の xulrunner-sub をアプリケーション名に変更して application.ini のあるディレクトリに移動し、起動 ) または Firefox3.0.3 ( -app オプションにより起動 ) 【実行のタイミング】 アプリケーションのメインウィンドウの onload イベント発生時。 【コードの概要】 アプリケーションディレクトリの zip.sqlite ファイルを、作成されたプロファイルにコピーする。 # Linux 版と Windows 版では nsIFile の moveTo メソッドの実装がかなり異なるのでしょうか? |
作成者: | mitsugu [ 2008年10月02日(木) 10:17 ] |
記事の件名: | Re: [XULRunnerアプリケーション]初期化処理のタイミングが分からない |
【追記】 WindowsXP と Windows2000 でのテストは、自宅に Windows マシンがないため、友人を電話とチャットでリモートコントロールしてテストしてもらいました。 それと、Ubuntu 上の wine でテストしたら、当然動きました orz |
作成者: | あ [ 2008年10月02日(木) 22:20 ] |
記事の件名: | Re: [XULRunnerアプリケーション]初期化処理のタイミングが分からない |
mitsugu さんが書きました: 【現象】 Windows で Firefox で試してみましたが、そのコードは動作しました。
以下のコードが Ubuntu 8.04.1 のアプリケーション起動時は動作し、WindowsXP SP3、Windows2000 SP? では動作しない。 原因はそのコードの他のどこかにあるのでは? |
作成者: | mitsugu [ 2008年10月03日(金) 07:20 ] |
記事の件名: | Re: [XULRunnerアプリケーション]初期化処理のタイミングが分からない |
あさん さんが書きました: mitsugu さんが書きました: 【現象】 Windows で Firefox で試してみましたが、そのコードは動作しました。以下のコードが Ubuntu 8.04.1 のアプリケーション起動時は動作し、WindowsXP SP3、Windows2000 SP? では動作しない。 原因はそのコードの他のどこかにあるのでは? 一応上記コードを呼び出している XUL ファイルを転記します。 コード: <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <?xml-stylesheet type="text/css" href="chrome://addressbook/skin/addressbook.css"?> <!DOCTYPE window SYSTEM "chrome://addressbook/locale/addressbook.dtd"> <window windowtype="xulmine" id='mainmenu' title='&addressbook_title;' xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul' onload='init();'> <script type="application/x-javascript" src="chrome://addressbook/content/addressbook.js"/> <vbox id="main_box"> <description id='main_title' value='&addressbook_title;'/> <spacer flex="1"/> <button id='ad_input' tabindex='1' label='&edit_address;' tooltiptext='&edit_address_tip;' onclick="window.open('chrome://addressbook/content/edit_address.xul','','chrome,centerscreen,modal')"/> <spacer flex="1"/> <button id='ad_disp' tabindex='2' label='&disp_address;' tooltiptext='&disp_address_tip;'/> <spacer flex="1"/> <button id='ad_print' tabindex='3' label='&print_address;' tooltiptext='&print_address_tip;'/> <spacer flex="1"/> <button id='ad_delete' tabindex='4' label='&delete_address;' tooltiptext='&delete_address_tip;'/> <spacer flex="1"/> <hbox> <spacer flex="1"/> <button id="exit" tabindex='5' label='&exit;' tooltiptext='&exit_tip;' onclick='window.close();'/> </hbox> </vbox> </window> この window 要素がアプリケーションのメインウィンドウになります。 それで私が期待している動作は、このアプリケーションを初めて起動したときにプロファイルが作成され、そこに zip.sqlite ファイルが移動することです。 Ubuntu では期待通りの動作をするのですが、知人の Windows XP、Windows2000 では、プロファイルは作成されるものの、zip.sqlite ファイルが消失するという現象が生じています。 また、Windows ではプロファイルの作成が終わるより先に moveTo が走ってるんじゃないかと思い、試しに ad_input を id とするボタンを押したときに表示される chrome://addressbook/content/edit_address.xul の onload 時に、上記コードを実行するように変更しても結果は同じで、Ubuntu では zip.sqlite はプロファイルに移動し、Windows ではファイルが消失するという結果になっています。 |
作成者: | mitsugu [ 2008年10月04日(土) 15:24 ] |
記事の件名: | ちゃんと動くことを確認してきました。 |
あさん、どうも確認のお手間を取らせてすみませんでした。 つい先ほど、テストを頼んだ友人のところに行って、WindowsXP マシンを借りて正常動作していることを確認しました。友人は郵便番号を入力せずに検索ボタンを押していたようです。 人と人とのインターフェースの問題でした。 お騒がせしてすいませんでした。 # 参考までに nightly を公開している URL は以下のところです。 # http://www.hcn.zaq.ne.jp/cahpa908/ |
ページ 1 / 1 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |