我现在已经花了好几个小时,在网上试图理解 - 而不仅仅是复制 - 如何加载文本文件。我找不到任何我发现的例子,也就是说,直到我从chrome改为firefox。例如,stackoverflow中的代码问题:HTML5 File api, reading in an xml/text file and displaying it on the page?,为简单起见,我在这里写道:
<!DOCTYPE html>
<html>
<head>
<title>reading xml</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>
<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// Loop through the FileList
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Print the contents of the file
var span = document.createElement('span');
span.innerHTML = ['<p>',e.target.result,'</p>'].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the file
reader.readAsText(f);
// reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
</body>
在firefox上运行得很好。我无法让它在铬中发挥作用。我错过了什么?!感谢。
我使用的是Chromium 18.0.1025.168(Developer Build 134367 Linux)Ubuntu 11.10
答案 0 :(得分:0)
可能是这个吗?
for (var i = 0, f; f = files[i]; i++) {
你的第二部分不应该是有条件的。像我这样的东西files.length?
答案 1 :(得分:0)
出于安全考虑,要加载本地文件,我必须使用以下命令从命令行调用chromium。
chromium-browser --allow-file-access-from-files
注意:您必须关闭所有铬窗才能使其生效。
因此而失去了大约四个小时......