diff --git a/demo/editor.html b/demo/editor.html index 385a2b56..0fce1956 100644 --- a/demo/editor.html +++ b/demo/editor.html @@ -96,7 +96,41 @@ window.onresize = function() { editor.resize(); }; +ace.addListener(container, "dragover", function(e) { + return ace.preventDefault(e); +}); +ace.addListener(container, "drop", function(e) { + try { + var file = e.dataTransfer.files[0]; + } catch(e) { + return ace.stopEvent(); + } + + if (window.FileReader) { + var reader = new FileReader(); + reader.onload = function(e) { + editor.clearSelection(); + editor.moveCursorTo(0, 0); + editor.selectFileEnd(); + + var mode = "text"; + if (/^.*\.js$/i.test(file.name)) { + mode = "javascript"; + } else if (/^.*\.xml$/i.test(file.name)) { + mode = "xml"; + } + + editor.onTextInput(reader.result); + + modeEl.value = mode; + editor.setMode(modes[mode]); + } + reader.readAsText(file); + } + + return ace.preventDefault(e); +});