将Json拖放到Chrome中
答
您可以使用HTML5拖放&删除并FileReader
API的组合来读取文件:
var dnd = new DnDFileController('body', function(files) {
var f = files[0];
if (!f.type.match('application/json')) {
alert('Not a JSON file!');
}
var reader = new FileReader();
reader.onloadend = function(e) {
var result = JSON.parse(this.result);
console.log(result);
};
reader.readAsText(f);
});
DnDFileController
为http://html5-demos.appspot.com/static/filesystem/filer.js/demos/js/dnd.js,只是设置你传递的元素在正确的DnD事件监听器选择。
答
这里是一个自包含最小工作代码,无需外部依赖:
function dropJSON(targetEl, callback) {
// disable default drag & drop functionality
targetEl.addEventListener('dragenter', function(e){ e.preventDefault(); });
targetEl.addEventListener('dragover', function(e){ e.preventDefault(); });
targetEl.addEventListener('drop', function(event) {
var reader = new FileReader();
reader.onloadend = function() {
var data = JSON.parse(this.result);
callback(data);
};
reader.readAsText(event.dataTransfer.files[0]);
event.preventDefault();
});
}
dropJSON(
document.getElementById("dropTarget"),
function(data) {
// dropped - do something with data
console.log(data);
}
);
的代码不包含任何完整性检查或错误处理。
所以你想要的代码接受一滴json文件并解析内容? – 2012-01-15 11:54:52