是否有一种方法可以开始将XUL树中的项目拖动到文件夹中,并在删除时使用这些项目的数据创建一个文件?
我已经按照MDN的例子成功地实现了从文件夹到XUL树的拖放文件,现在我需要一个反向过程。
感谢
我找到了一个解决方案,但它有一点副作用-当用户释放鼠标按钮时,我找不到获得通知的方法,因此必须在临时目录中初始化dragstart事件期间创建一个包含树中数据的文件,当用户释放键时,该文件将移动到拖放文件夹中。示例:
//event listener must be added to <treechildren> element
document.getElementById("myTreeChildren").addEventListener("dragstart", treeDragStart, true);
function treeDragStart(e)
{
var nsIFile = FileUtils.getFile("TmpD", ["myfilename.txt"], true),
fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream),
content = "this is an example text";
// flags: PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE
fos.init(nsIFile, 0x04 | 0x08 | 0x20, 0600, 0);
written = fos.write(content, content.length);
if (fos instanceof Ci.nsISafeOutputStream)
fos.finish();
else
fos.close();
e.dataTransfer.effectAllowed = "move";
e.dataTransfer.mozSetDataAt("application/x-moz-file", nsIFile, 0);
}//treeDragStart()
有人知道是否有办法在应用程序外部发生丢弃时获得通知吗?