diff --git a/lib/client/edit.js b/lib/client/edit.js index 91d7a92d..96d8af2e 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -136,9 +136,7 @@ var CloudCmd, Util, DOM, CloudFunc, io, ace, Zip, MenuIO, Format, edward; }); Events.add(element, { - contextmenu : setMenu, - drop : onDrop, - dragover : Events.preventDefault + contextmenu : setMenu }); return element; @@ -597,25 +595,6 @@ var CloudCmd, Util, DOM, CloudFunc, io, ace, Zip, MenuIO, Format, edward; }); } - function onDrop(event) { - var reader, files, - onLoad = function(event) { - var data = event.target.result; - - edward.setValue(data); - }; - - event.preventDefault(); - - files = event.dataTransfer.files; - - [].forEach.call(files, function(file) { - reader = new FileReader(); - Events.addLoad(reader, onLoad); - reader.readAsBinaryString(file); - }); - } - this.showMessage = function(text) { edward.showMessage(text); }; diff --git a/lib/client/edward.js b/lib/client/edward.js index 8431d8d0..28cb32f3 100644 --- a/lib/client/edward.js +++ b/lib/client/edward.js @@ -16,6 +16,12 @@ var join, ace, Util, DOM; edward = function(el, callback) { Element = el || document.body; + + Element.addEventListener('drop', onDrop); + Element.addEventListener('dragover', function(event) { + event.preventDefault(); + }); + exec.series([ loadFiles, function() { @@ -144,6 +150,25 @@ var join, ace, Util, DOM; }, HIDE_TIME); }; + function onDrop(event) { + var reader, files, + onLoad = function(event) { + var data = event.target.result; + + edward.setValue(data); + }; + + event.preventDefault(); + + files = event.dataTransfer.files; + + [].forEach.call(files, function(file) { + reader = new FileReader(); + reader.addEventListener('load', onLoad); + reader.readAsBinaryString(file); + }); + } + function loadFiles(callback) { var css = '/css/edward.css', dir = '/modules/ace-builds/src-noconflict/',