先人の智慧を拝借致したくお願い申し上げます。
旧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
以上、お智慧を拝借できれば幸いです。