Я нашел решение, но она имеет мало побочный эффект - я не могу найти способ, чтобы получить уведомление, когда пользователь отпустит кнопку мыши, поэтому файл (ы) с данными из дерево должно быть создано во время инициализации события dragstart в каталоге temp, который будет перемещен в папку, сброшенную в папку, когда пользователь выпустит кнопку мыши. Пример:
//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()
Знает ли кто, если есть способ получить уведомление, когда падение происходит из-за пределов применения?