我是一个学习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
但是当我把它放在我的localhost中并且我访问它时,JS不起作用。
在网络服务器中我的代码是否不正确? 请帮帮我。
答案 0 :(得分:0)
我建议使用错误控制台显示错误,以便人们知道如何帮助您? =]并将其粘贴到您的查询中
下载类似firebug的内容,查看是否正在发出请求(适用于FireFox)
答案 1 :(得分:0)
您希望通过http://协议而不是file://
来访问该文件答案 2 :(得分: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;
})();