Javascript读取目录下的文件名

时间:2012-01-26 15:57:10

标签: javascript xml

我在目录下放了一些XML文件。我需要使用javascript填充下拉列表以显示所有这些XML文件名。我该怎么做?

3 个答案:

答案 0 :(得分:1)

在情况和情况方面,你已经过于宽泛,所以我会回答你的问题。

鉴于以下内容:

  • 您需要填充<select>的网页与文件列表位于同一服务器上。
  • 服务器能够使用服务器端语言(例如PHP,ASP)
  • 你不介意,或者至少可以破译jQuery代码(使我即将发布更多关于概念的内容而不是实践)

您需要以下设置:

创建转储文件名列表的服务器端文件

您需要查找一些方法来检索和转储文件列表。这就是JavaScript&amp; AJAX可以获取此列表并转入下拉列表。所述脚本的示例输出(我在下面的JavaScript中将其作为/server-side-file-list别名)

file-001.xml
file-002.xml
file-003.xml
file-004.xml

设置页面上的<select>

<!-- Somewhere in the page -->
<select id="xml-file-list" name="xml-file-list"></select>

设置JavaScript / Ajax代码

<!-- This should go in the <head></head> portion of your page with the select -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
  $(function(){
    $.ajax({
      url: '/server-side-file-list',
      success: function(d){
        $.each(d.split(/[\r\n]+/),function(i,e){
          $('<option />',{ value: e }).text(e).appendTo('#xml-file-list');
        });
      }
  });
</script>

基本工作流程:

  1. HTML页面加载空<select>
  2. jQuery接管并使用AJAX(幕后)从/server-side-file-list脚本中获取文件列表
  3. 返回结果并将其放入<select> <option> s。
  4. 完成。
  5. -

    深思熟虑:

    更好的方法可能是在运行时将文件列表加载到页面中(如果可能)。也就是说,如果您正在处理的页面是ASP或PHP或其他类型的服务器端语言页面,则可以在调用页面时检索文件列表并在此时加载(并且完全避免使用javascript。)

答案 1 :(得分:0)

假设您正在讨论本地文件,则需要一个支持W3C FileSystem API的浏览器。

您可以在www.html5test.com上测试兼容性

答案 2 :(得分:0)

如果您对xml文件的名称完全不了解,则需要使用服务器端语言来获取服务器目录的文件列表。

否则,如果您控制文件名,解决方法可能是给他们一个渐进的名称(例如1.xml2.xml ...)并尝试制作一些链式的ajax {{1调用。

如果1.xml的ajax请求返回HEAD服务器状态,则请求2.xml,依此类推,直到出现404错误。对于每个ajax调用,您可以将名称添加到数组,然后使用它来创建动态200

当然,就性能而言,这应该仅作为解决方法而且可靠,因为即使资源也可能发生404存在,所以我强烈建议使用服务器端语言

无论如何,这是一个解释变通方法的jQuery 1.5+示例。假设您有select1.xml, 2.xml。 HTML只是一个空选择

3.xml

使用Javascript / jQuery的

<select id="xmlfiles"></select>

,这显示了带选项的选择

./ 1.XML
./2.xml
./3.xml

(对不起我的冗长)