在Javascript中将文本保存到文件的问题?

时间:2016-11-17 08:55:27

标签: javascript

我正在学习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>

2 个答案:

答案 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)

fopenfwritefclose未定义浏览器JavaScript函数,浏览器JavaScript无法通过设计直接访问本地计算机的文件系统。如果是的话,任何网站都可以从您的计算机上读取文件 - 这会非常令人担忧,因为大多数人都存储了个人资料!

您可以使用node.js执行此操作,但不会在浏览器中运行。