MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
dropハンドラ内でダイアログ・ボックスを使いたい https://forums.mozillazine.jp/viewtopic.php?f=26&t=9120 |
ページ 1 / 1 |
作成者: | mitsugu [ 2009年9月14日(月) 11:59 ] |
記事の件名: | 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 以上、お智慧を拝借できれば幸いです。 |
作成者: | mitsugu [ 2009年9月15日(火) 11:03 ] |
記事の件名: | Re: dropハンドラ内でダイアログ・ボックスを使いたい |
とりあえず、作成中の拡張に対して、drop イベントハンドラ内ではダイアログボックスを開かない、という回避策を採りました。そのため、この質問は危急のものではなくなりました。 # 後学のため、もしよろしければ解決方法を後教示賜われば幸いです。 |
作成者: | Piro [ 2009年9月22日(火) 00:09 ] |
記事の件名: | Re: dropハンドラ内でダイアログ・ボックスを使いたい |
Windows VistaのFirefox 3.5で試した限り、特に問題なく動いているようです。 理屈の上では問題が起こりえない部分なので、Firefoxのバグだと思いますが……(ひょっとしてLinux限定?) ありがちな回避方法としては、onDrop()のタイミングでwindow.setTimeout()を呼んで、数ミリ秒後にダイアログを開かせるとかそんな感じでしょうか。 |
作成者: | mitsugu [ 2009年9月22日(火) 10:06 ] |
記事の件名: | Re: dropハンドラ内でダイアログ・ボックスを使いたい |
Piroさん さんが書きました: Windows VistaのFirefox 3.5で試した限り、特に問題なく動いているようです。
Vista の Firefox3.5 で動いてますか?つい先ほど友人に Vista マシンを借りてテストしてみたところ、Drop イベントをひらうことができていません。toolkit 内で "tranceferData.first is null" というエラーが発生しています。 |
ページ 1 / 1 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |