我正在学习javascript,所以我试图使用Javascript将字符串附加到文本文件中。我尝试了以下但由于某种原因没有任何反应。我哪里可能做错了?我在Mozilla firefox浏览器上运行代码。
<%--
Document : demo
Created on : 17 Nov, 2016, 11:01:01 AM
Author : user
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<button onclick="WriteFile()">Click me</button>
<p id="demo"></p>
<script type="text/javascript">
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World";
}
function WriteFile()
{
var fh = fopen("C:\\javascriptlogs\\myfile.txt", 3); // Open the file for writing
if(fh!=-1) // If the file has been successfully opened
{
var str = "Some text goes here...";
fwrite(fh, str); // Write the string to a file
fclose(fh); // Close the file
}
}
</script>
</body>
</html>
答案 0 :(得分:2)
不幸的是,JavaScript没有像其他编程语言那样的fopen
函数。 Javascript通常不能访问新浏览器中的本地文件,但XMLHttpRequest对象可用于读取文件。所以它实际上是读取文件的Ajax(而不是Javascript)。
这是一个可以帮助您入门的小例子。
var txt = '';
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
txt = xmlhttp.responseText;
}
};
xmlhttp.open("GET","abc.txt",true);
xmlhttp.send();
答案 1 :(得分:2)
fopen
,fwrite
,fclose
未定义浏览器JavaScript函数,浏览器JavaScript无法通过设计直接访问本地计算机的文件系统。如果是的话,任何网站都可以从您的计算机上读取文件 - 这会非常令人担忧,因为大多数人都存储了个人资料!
您可以使用node.js执行此操作,但不会在浏览器中运行。