javascript を使用してローカルのファイルをドラッグアンドドロップで取得するというのをやってみたかったのでちょろっと作ってみた。
あんまり試してないけど Firefox3.6.x じゃないと動かないかな?
詳しい事は
HTML5 Drag and Drop and File API Tutorial | The Buzz Media
を読みましょう。俺はまだ少ししか読んでないけど。
以下ドラッグアンドドロップ部分のソース
function cancel(e) {
e.stopPropagation();
e.preventDefault();
return false;
}
function hashcheck(e) {
var data = e.dataTransfer;
if (data.files.length > 0) {
check_hash(data.files[0].getAsBinary(), 'binary');
}
e.stopPropagation();
e.preventDefault();
return false;
}
$('#drop')[0].addEventListener('dragover', cancel, false);
$('#drop')[0].addEventListener('dragenter', cancel, false);
$('#drop')[0].addEventListener('dragleave', cancel, false);
$('#drop')[0].addEventListener('drop', hashcheck, false);
対象の要素に対してイベントを4つもつけないといけない様だ。もっともサポートしているブラウザがまだ少数の様なので実用的ではない、かな。
コメント