在javascript中选择下拉选项时在文本区域加载文本文件

在javascript中选择下拉选项时在文本区域加载文本文件,javascript,jquery,html,Javascript,Jquery,Html,我创建了一个下拉列表,其中包含3个选项 A. B c 我想在同一页的文本区域加载一个本地文件,除了选择选项的下拉列表 例如,当我单击选项a时,文本区域上应显示a.txt的内容 当我点击选项b时,b.txt的内容应该显示在文本区域中 请帮忙。你不应该用javascript做这件事。要访问文件系统,您需要一些服务器端语言,如C#或PHP。有新的文件系统API,但仅在现代浏览器(HTML5)中受支持,这将限制用户使用旧版本的协议 您需要使用HTML5文件系统API来读取本地文件 示例代码: fun

我创建了一个下拉列表,其中包含3个选项 A. B c

我想在同一页的文本区域加载一个本地文件,除了选择选项的下拉列表

例如,当我单击选项a时,文本区域上应显示a.txt的内容

当我点击选项b时,b.txt的内容应该显示在文本区域中


请帮忙。

你不应该用javascript做这件事。要访问文件系统,您需要一些服务器端语言,如C#或PHP。有新的文件系统API,但仅在现代浏览器(HTML5)中受支持,这将限制用户使用旧版本的协议


您需要使用HTML5文件系统API来读取本地文件

示例代码:

  function readSingleFile(evt) {
    //Retrieve the first (and only!) File from the FileList object
    var f = evt.target.files[0]; 

    if (f) {
      var r = new FileReader();
      r.onload = function(e) { 
          var contents = e.target.result;
        alert( "Got the file.n" 
              +"name: " + f.name + "n"
              +"type: " + f.type + "n"
              +"size: " + f.size + " bytesn"
              + "starts with: " + contents.substr(1, contents.indexOf("n"))
        );  
      }
      r.readAsText(f);
    } else { 
      alert("Failed to load file");
    }
  }

  document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
更多详情可在这里查阅


如果您想在本地文件系统的浏览器中执行此操作,则不可能。至少您必须运行本地web服务器


在web服务器上,它看起来像这样:,只有您可以使用jQuery get

如果您愿意,您可以在脚本中使用PHP(假设脚本位于.PHP文件中)


这是MVC应用程序的基本功能。是否要动态加载计算机上文本文件的内容并将其放入文本区域?您是只有客户端代码还是服务器端代码?是的,我想动态加载文本文件的内容。在MVC结构化应用程序中,在JSP上使用Java非常简单。谢谢。。但是我只想使用javascript。HTML5文件系统API只能在Chrome和Opera中使用,如果不用于特定的用例,它会有一些非常糟糕的安全漏洞。经过时间考验的方法是在MVC结构化应用程序的JSP上使用Java。。是的,和我想做的一样。你能告诉我如何使用jqueryget吗
<?php
    function readTextFile($file) {
        $myfile = fopen($file, "r") or die("Unable to open file!");
        return str_replace("'", '"', fread($myfile, filesize($file)));
        fclose($myfile);
    };
?>

var optionsObject = {
    a: '<?=readTextFile('/path/to/a.txt') ?>',
    b: '<?=readTextFile('/path/to/b.txt') ?>',
    c: '<?=readTextFile('/path/to/c.txt') ?>'
};
var optionsArray = [
    '<?=readTextFile('/path/to/a.txt') ?>',
    '<?=readTextFile('/path/to/b.txt') ?>',
    '<?=readTextFile('/path/to/c.txt') ?>'
];