在Javascript中从本地数据保存文件

Tra*_*vis 5 javascript

继承人的情景:

  1. 用户访问我的网站并打开一个具有一些JavaScript功能的网页.
  2. 用户通过javascript编辑数据
  3. 用户点击保存按钮来保存数据,事情是,似乎他们不应该下载这些数据,因为它已经在本地机器上的javascript中.

是否可以从javascript(从外国网页执行)保存数据而无需从服务器下载文件?

任何帮助将非常感激!

CMS*_*CMS 5

为了在客户端保存数据,没有任何服务器交互,我见过的最好的是Downloadify,是一个小的JavaScript + Flash库,允许您直接在浏览器中动态生成和保存文件...

查看此演示.


luk*_*onn 5

当我想在不使用服务器的情况下启动下载时,我遇到了这种情况.我写了这个jQuery插件,它在Blob中包含了textarea/div的内容,然后启动了Blob的下载.允许您指定文件名和类型..

jQuery.fn.downld = function (ops) {
  this.each(function () {
    var _ops = ops || {}, 
    file_name = _ops.name || "downld_file",
    file_type = _ops.type || "txt",
    file_content = $(this).val() || $(this).html();

    var _file = new Blob([file_content],{type:'application/octet-stream'});
    window.URL = window.URL || window.webkitURL;

    var a = document.createElement('a');
    a.href = window.URL.createObjectURL(_file); 
    a.download = file_name+"."+file_type;
    document.body.appendChild(a);
    a.click(); $('a').last().remove();
  });
}
Run Code Online (Sandbox Code Playgroud)

默认使用:$("#element").downld();
选项:$("#element").downld({name:"some_file_name",type:"html"});

Codepen示例http://codepen.io/anon/pen/cAqzE