0

我是一个学习 javascript 的新程序员,实际上我是 js 新手。我有一个任务需要一个能够读取客户端目录中文件的网页。我有一些js代码:

<html>
<script type="text/javascript">
    function ReadWeight() {
        var filePath = "file:///D:/Text.txt";
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET",filePath,false);
        xmlhttp.send(null);
        var fileContent = xmlhttp.responseText; 

        alert(fileContent);
    }

    ReadWeight();
</script>
<body>
</body>
</html>

当我将此代码保存在我的目录中并通过此链接访问它时,它运行良好。

file:///D:/test.html

但是当我把它放在我的本地主机中并访问它时,JS 不起作用。

我的代码在 Web 服务器中时是否不正确?请帮帮我。

4

3 回答 3

0

据我所知,您只能使用<input type="file">元素读取客户端文件。获得文件后,您可以多次阅读:

HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>File Refresh</title>
  <script src="filerefresh.js"></script>
</head>

<body>
  <input id="fileInput" type="file">
  <pre id="fileDisplay"></pre>
</body>
</html>

JavaScript:

(function() {
    var sleepInterval = 1000; // 1 second
    var fileInput;
    var fileDisplay;
    var reader;
    var id = undefined;
    function initialize() {
        fileInput = document.getElementById("fileInput");
        fileDisplay = document.getElementById("fileDisplay");
        reader = new FileReader();
        reader.onloadend = function() {
            fileDisplay.innerHTML = reader.result;
            reschedule();
        };
        fileInput.addEventListener("change", readFile);
    }
    function reschedule() {
        if (id !== undefined) {
            clearTimeout(id);
        }
        id = setTimeout(readFile, sleepInterval);
    }
    function readFile() {
        reader.readAsText(fileInput.files[0]);
    }

    window.onload = initialize;
})();
于 2013-06-15T03:56:41.443 回答
0

看起来您更愿意通过 http:// 协议访问文件,而不是 file://

于 2013-06-15T02:26:00.590 回答
0

我是否可以建议使用错误控制台来显示错误,以便人们知道如何帮助您?=] 并将其粘贴到您的查询中

下载类似 firebug 的东西,看看是否有请求(对于 FireFox)

于 2013-06-15T02:06:57.523 回答