如何使用javascript写入文本文件?

时间:2014-05-07 11:45:18

标签: javascript file

这是我的代码:

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
    $( document ).ready(function() {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var filename = "C:\\xampp\\htdocs\\harti\\data.txt";
        var f = fso.OpenTextFile(filename, 2, true, -1); // -1 means unicode
        f.WriteLine("Hello world!");
        f.Close();
    });
</script>

data.txt文件存在。问题是为什么我的代码不起作用? THX

1 个答案:

答案 0 :(得分:0)

问题是,你想要保存什么,为什么需要写入文本文件?

允许浏览器写入用户的计算机是一种安全漏洞。浏览器的脚本不应访问和修改属于该用户的本地文件目录。如果是这样,病毒和其他恶意代码将会传播。

因此,如果您想保存一些数据,您有两种选择:

选项1: 使用服务器端脚本将其保存到服务器,例如PHP。您可以根据需要创建任意数量的文件,重命名它们,将它们保存到数据库并编辑它们等。 如果您担心重定向用户(用户需要提交表单)。您可以使用AJAX在后台发送请求以保存用户输入并使用php保存文件。

使用php写入文件的示例代码:

$f = fopen('/path/to/the/file/you/want/to/write/to', 'a');    
fwrite($f, '<<your string>>');
fclose($f);

选项2:

将其保存到浏览器的存储空间中。快速,离线工作。 browser storage有几种类型,例如localStorage,它们都是内置的,可以直接使用。

  

存储对象是标准的最新成员。因此,它们可能并不存在于所有浏览器中..........使用cookie严重限制了可以保存的最大数据大小。

代码示例:

  function storeMyContact(id) {
    var fullname    = document.getElementById('fullname').innerHTML;
    var phone       = document.getElementById('phone').innerHTML;
    var email       = document.getElementById('email').innerHTML;
    var comments            = "this user has saved his info"
    localStorage.setItem('mcFull',fullname);
    localStorage.setItem('mcPhone',phone);
    localStorage.setItem('mcEmail',email);
    localStorage.setItem('comments',comments);

  }

另一方面,localStorage可能还不够,因此,外部库可以实现利用存储中内置的浏览器并使数据库跨浏览器工作。

1- SQL,如DB sequelsphere (看起来非常适合举重!)

使用MYSQL直接从浏览器运行的查询的代码示例,如INSERT和SELECT:

SELECT empl_id, name, age 
  FROM empl 
 WHERE age < 30 

2-JSON,如DB taffydb (看起来适合日常活动!)

// Create DB and fill it with records
var friends = TAFFY([
    {"id":1,"gender":"M","first":"John","last":"Smith","city":"Seattle, WA","status":"Active"},
    {"id":2,"gender":"F","first":"Kelly","last":"Ruth","city":"Dallas, TX","status":"Active"},
    {"id":3,"gender":"M","first":"Jeff","last":"Stevenson","city":"Washington, D.C.","status":"Active"},
    {"id":4,"gender":"F","first":"Jennifer","last":"Gill","city":"Seattle, WA","status":"Active"}   
]);

   // Find all the friends in Seattle
   friends({city:"Seattle, WA"});

3- jstorage是一个跨浏览器的键值存储数据库,用于在浏览器中本地存储数据 - jStorage支持所有主流浏览器,包括桌面(是 - 甚至是Internet Explorer 6)和移动设备。 / p>

如果您想要更多选项 - &gt;(client-side-browser-database