2012-07-03 24 views
7

ユーザーは自分のコンピュータからファイルをドラッグアンドドロップ(または選択)し、JavaScriptを使用してテキストボックスにロードできるようにします。HTML5ドラッグアンドドロップ:JavaScriptを使用したテキストボックスにテキストファイルを読み込み

JavaScriptを使用してローカルファイルをテキストボックスに読み込むことはできますか?はいの場合は、どうですか?

+0

は多分 ' –

+0

あなたは[この](HTTPのようなものを意味するかFileReaderの()'を使用してサーバーにファイルをアップロードすることなく、このことはできません:// html5demos.com/file-api)をテキストファイル用に調整しましたか? –

+0

TEXTファイルの場合はYesです。 –

答えて

16

私はあなたがHTML5のために望むすべてのものが含まれていると思いますremy/html5demos on github。

たとえば、http://html5demos.com/file-apiを変更してテキストファイルを受け入れ、ブラウザに表示するようにしました。

jsfiddleを参照してください。

編集
関連するスクリプト:

// modified from http://html5demos.com/file-api 
var holder = document.getElementById('holder'), 
    state = document.getElementById('status'); 

if (typeof window.FileReader === 'undefined') { 
    state.className = 'fail'; 
} else { 
    state.className = 'success'; 
    state.innerHTML = 'File API & FileReader available'; 
} 

holder.ondragover = function() { 
    this.className = 'hover'; 
    return false; 
}; 
holder.ondragend = function() { 
    this.className = ''; 
    return false; 
}; 
holder.ondrop = function(e) { 
    this.className = ''; 
    e.preventDefault(); 

    var file = e.dataTransfer.files[0], 
     reader = new FileReader(); 
    reader.onload = function(event) { 
     console.log(event.target); 
     holder.innerText = event.target.result; 
    }; 
    console.log(file); 
    reader.readAsText(file); 

    return false; 
};​ 
+0

私のMacでは、 'ondragend'イベントはchrome 56では機能しませんでした。私はそれを 'onmouseleave'に変更しなければなりませんでした。 – Jersh

関連する問題