0

我已经研究了好几个小时了,浏览了网络上的不同选项,试图理解——而不仅仅是复制——如何加载文本文件。我无法使用我找到的任何示例,也就是说,直到我从铬更改为 Firefox。例如,stackoverflow 问题中的代码:HTML5 File api, reading in an x​​ml/text file and display 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(开发人员构建 134367 Linux)Ubuntu 11.10

4

2 回答 2

0

会不会是这个?

for (var i = 0, f; f = files[i]; i++) {

你的第二部分不应该是有条件的。像 i < files.length 之类的东西?

于 2012-10-11T14:20:24.620 回答
0

出于安全原因,要加载本地文件,我必须使用以下命令从命令行调用 chromium:

    chromium-browser --allow-file-access-from-files

注意:您必须关闭所有铬窗口才能生效。

就因为这个,浪费了大约四个小时……

于 2012-10-11T15:41:57.720 回答