С html5rocks и cssninja все в порядке, но я думаю, что для быстрых ответов это слишком. Вот простой пример использования событий перетаскивания из чего-либо, в том числе для загрузки файлов.
<style>
div { background-color: #eee; border: 1px solid black; padding: 5px; float: left; clear: both; }
</style>
<div id="uiLinkText" draggable="true">Drag <b>Text</b> to a text editor </div>
<div id="uiLinkHyperlink" draggable="true">Drag <b>Hyperlink</b> to address bar </div>
<div id="uiLinkUrlDownload" draggable="true">Drag <b>Url Download</b> to file system </div>
<div id="uiLinkStaticDownload" draggable="true">Drag <b>Static Download</b> to file system </div>
<script>
document.getElementById('uiLinkText').ondragstart = function(event){
// plain text, for dropping into text editor
event.dataTransfer.setData('text/plain', 'Go to /4583970/mozhno-li-peretaschit-fail-iz-brauzera-na-rabochii-stol-vyzvav-zagruzku to read about this.');
}
document.getElementById('uiLinkHyperlink').ondragstart = function(event){
// URL, for dropping into the browser's address bar
event.dataTransfer.setData('text/uri-list', '/4583970/mozhno-li-peretaschit-fail-iz-brauzera-na-rabochii-stol-vyzvav-zagruzku');
}
document.getElementById('uiLinkUrlDownload').ondragstart = function(event){
// file download contents, for dropping into a file system
event.dataTransfer.setData('DownloadURL', 'text/plain:SourceQuestion.html:/4583970/mozhno-li-peretaschit-fail-iz-brauzera-na-rabochii-stol-vyzvav-zagruzku')
}
document.getElementById('uiLinkStaticDownload').ondragstart = function(event){
var textToWrite = 'file contents here';
var textFileAsBlob = new Blob([textToWrite], { type: 'text/xml' });
var url = window.URL.createObjectURL(textFileAsBlob);
// file download contents, for dropping into a file system
event.dataTransfer.setData('DownloadURL', 'text/plain:Static.txt:' + url)
}
</script>
Предупреждение. Хотя локально это работало для меня в Chrome локально (в Windows 7), когда я пытался поместить его в jsfiddle для линке, «Статическая загрузка» не работала, а «Загрузка URL» приводила к сбою Google Chrome.
Как и в большинстве случаев перетаскивания, он не работает с MSIE 9, я не пробовал 10+ или Firefox.