― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - dropハンドラ内でダイアログ・ボックスを使いたい
作成者 メッセージ
  記事の件名:  Re: dropハンドラ内でダイアログ・ボックスを使いたい  引用付きで返信する
Piroさん さんが書きました:
Windows VistaのFirefox 3.5で試した限り、特に問題なく動いているようです。

 Vista の Firefox3.5 で動いてますか?つい先ほど友人に Vista マシンを借りてテストしてみたところ、Drop イベントをひらうことができていません。toolkit 内で "tranceferData.first is null" というエラーが発生しています。
投稿記事 Posted: 2009年9月22日(火) 10:06
  記事の件名:  Re: dropハンドラ内でダイアログ・ボックスを使いたい  引用付きで返信する
Windows VistaのFirefox 3.5で試した限り、特に問題なく動いているようです。
理屈の上では問題が起こりえない部分なので、Firefoxのバグだと思いますが……(ひょっとしてLinux限定?)
ありがちな回避方法としては、onDrop()のタイミングでwindow.setTimeout()を呼んで、数ミリ秒後にダイアログを開かせるとかそんな感じでしょうか。
投稿記事 Posted: 2009年9月22日(火) 00:09
  記事の件名:  Re: dropハンドラ内でダイアログ・ボックスを使いたい  引用付きで返信する
 とりあえず、作成中の拡張に対して、drop イベントハンドラ内ではダイアログボックスを開かない、という回避策を採りました。そのため、この質問は危急のものではなくなりました。

# 後学のため、もしよろしければ解決方法を後教示賜われば幸いです。
投稿記事 Posted: 2009年9月15日(火) 11:03
  記事の件名:  dropハンドラ内でダイアログ・ボックスを使いたい  引用付きで返信する
 先人の智慧を拝借致したくお願い申し上げます。

 旧XULチュートリアルを参考に、ドラッグ・アンド・ドロップに対応した拡張を作ろうとしています。
 Drop イベントハンドラ内で openDialog() により、ダイアログ・ボックスを開く仕様にしているのですが、開いたダイアログ・ボックス内の memuitem 要素がマウスで操作できません。
 これはそのような使い方が想定されていないのか、あるいはなんらかのバグなのか、使い方が間違っているのかご教示願えないでしょうか。

 テスト用に拡張を作成してダイアログを開くところの JavaScript コードは以下のようになっています。
コード:
var   pdata={
   setAttribute: function()
   {
      window.openDialog("chrome://test/content/attribute.xul","","chrome,dialog,modal");
   }
};
var   puploader = {
   getSupportedFlavours : function ()
   {
      var flavours = new FlavourSet();
      flavours.appendFlavour("text/unicode");
      return flavours;
   },
   onDragEnter: function (evt,flavour,session){
   },
   onDragOver: function (evt,flavour,session){
   },
   onDrop:function(evt,dropdata,session)
   {
      pdata.setAttribute();
   },
   init: function()
   {
   }
};
window.addEventListener('load',puploader.init,false);

 attribute.xul は以下の通りです。
コード:
<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<!DOCTYPE dialog SYSTEM "chrome://test/locale/attribute.dtd">
<dialog id='test-attribute'
      title='&image_attribute;'
      xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'
      ondialogaccept='return;'
      ondialogcancel='return;'>

   <grid id="contents">

      <columns>
         <column/>
         <column flex='1'/>
      </columns>
      <rows>
         <row>
            <vbox>
               <spacer flex="1"/>

               <description value='&album;'/>
               <spacer flex="1"/>

            </vbox>
            <vbox>
               <spacer flex="1"/>

               <menulist tabindex='1' id="album_list">

                  <menupopup>
                     <menuitem label="1"/>
                     <menuitem label="2"/>
                     <menuitem label="3"/>
                     <menuitem label="4"/>
                     <menuitem label="5"/>
                  </menupopup>

               </menulist>

               <spacer flex="1"/>

            </vbox>
         </row>
      </rows>
   </grid>

</dialog>


 また以下の URL からテスト用の拡張本体をダウンロード可能です。
    http://dl.getdropbox.com/u/216524/test.xpi

 以上、お智慧を拝借できれば幸いです。
投稿記事 Posted: 2009年9月14日(月) 11:59

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean