13

下面的代码是使用 javascript 读取文本文件。有用。但是,我只想阅读部分内容。例如,文件的内容是:“Hello world!” 我只想显示“你好”。我尝试了函数split(),但它只适用于字符串。我不知道如何在这里插入。

 var urls = ["data.txt"];

function loadUrl() {
    var urlToLoad = urls[0];
    alert("load URL ... " + urlToLoad);
    browser.setAttributeNS(xlinkNS, "href", urlToLoad);
}

谢谢你!!!

4

3 回答 3

15

我用了

jQuery.get('http://localhost/foo.txt', function(data) {
var myvar = data;
});

,并从我的文本文件中获取数据。

或者试试这个

JQuery 提供了一个 $.get 方法,它可以从 URL 中捕获数据。因此,要“读取” html/文本文档,需要通过 URL 访问它。获取 HTML 内容后,您应该能够将该标记包装为 jQuery 包装集并正常搜索它。

未经测试,但它的一般要点......

var HTML_FILE_URL = '/whatever/html/file.html';

$(document).ready(function() {
    $.get(HTML_FILE_URL, function(data) {
        var fileDom = $(data);
        fileDom.find('h2').each(function() {
            alert($(this).text());
        });
    });
});
于 2013-07-15T07:43:56.777 回答
12

如果我正确理解您的需要,请尝试阅读单独的单词。创建一个内容为“hello world”的文件并使用示例脚本浏览到它。输出是“你好”。

<html>
<head>
<input type="file" id="fileinput" />
<script type="text/javascript">
  function readSingleFile(evt) {
    var f = evt.target.files[0];   
    if (f) {
      var r = new FileReader();
      r.onload = function(e) { 
          var contents = e.target.result;             
          var ct = r.result;
          var words = ct.split(' ');            
          alert(words[0]);
      }
      r.readAsText(f);
    } else { 
      alert("Failed to load file");
    }
  }

  document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
</script>
</head>
<body>
</body>
</html>

由于 javascript 对安全性的限制,直接读取必须使用 ajax 请求。此代码应该执行请求的操作:

<html>
<head>
<input type="file" id="fileinput" />
<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
  if(xmlhttp.status==200 && xmlhttp.readyState==4){    
    var words = xmlhttp.responseText.split(' ');
    alert(words[0]);
  }
}
xmlhttp.open("GET","FileName.txt",true);
xmlhttp.send();
</script>
</head>
<body>
</body>
</html>
于 2013-07-15T07:54:42.343 回答
0

使用 ajax 在 javascript 中打开文件(不使用任何框架)

var urls = ["data.txt"];
xhrDoc= new XMLHttpRequest();   
xhrDoc.open('GET', urls[0] , async)
if (xhrDoc.overrideMimeType)
    xhrDoc.overrideMimeType('text/plain; charset=x-user-defined')
xhrDoc.onreadystatechange =function()
{
if (this.readyState == 4)
{
    if (this.status == 200)
   {
    var data= this.response; //Here is a string of the text data 
   }

}                   
}
xhrDoc.send() //sending the request
于 2013-07-15T07:45:57.880 回答