如何将textarea中的值保存到空白文件?

时间:2014-01-29 10:26:22

标签: javascript jquery html function autosave

我正在创建一个网页,其中用户可以创建他/她自己的功能,然后这些功能将变成网页侧面的选项,因此当他们被点击/选择时,他们可以被使用。这是流程

  1. 用户创建以js
  2. 编写的功能
  3. 单击保存按钮时,它将自动保存到Savedfunction.js文件
  4. 创建的函数将被调用为复选框,以便可以使用
  5. 这是进一步阐述问题的图片:

    enter image description here

3 个答案:

答案 0 :(得分:2)

首先,javascript无法在您的计算机上保存文件(除了您使用ie)。安全,隐私...


如果您想让用户下载他创建的文件:

Chrome具有新的download属性 但它也适用于没有下载属性的其他brosers。

var txt='var x = 3,lol=fun;';

function dl(data,filename){
 var b=document.createElement('a');
 b.download=filename;
 b.textContent=filename;
 b.href='data:application/json;base64,'+
 window.btoa(unescape(encodeURIComponent(data)));
 return b
}

document.body.appendChild(dl(txt,'my.js'));

<强>样本

http://jsfiddle.net/8yQcW/

评论中的

也是自动下载的链接。


想要在服务器上保存数据:

注意:如果要将该功能保存到服务器,则需要像php这样的服务器语言

<?php
if($_POST['fn']&&$_POST['data']){
 $fh=fopen($_POST['fn'],'w') or die("can't open file");
 if(fwrite($fh,$_POST['data'])){
  echo '["ok":"file saved"]';// maybe return the saved code.
  //echo json_encode($_POST);
 }else{
  echo '["error":"can\'t save the file"]';
 }
 fclose($fh);
}
?>

想要仅在用户计算机上保存数据(使用现代网络技术吗?)

您还可以将数据存储在(clientSide)中:

window.localStorage
window.sessionStorage

webSQL

indexedDB

想要从它的字符串执行脚本吗?

不要使用eval();

使用:

 var js="var x='hey';alert(x);"
 (new Function(js))()

要实现您的需求,您需要混合使用这些技术。

如果您有任何其他问题,请询问。

答案 1 :(得分:1)

你可以做一种技巧,(概念)

  1. 在php或其他服务器端添加代码。
  2. 将脚本发布到服务器端(POST方法是优先的方法)。
  3. 在服务器端,使用脚本编写整个页面 - php页面将使用javascript。
  4. 重定向到新页面(php / asp,或最符合您需求的任何内容)。
  5. 祝你好运!!!

答案 2 :(得分:1)

Javascript无法直接写入文件系统(除非您使用Windows HTA应用程序,运行HTML / javascript - 然后在IE中可以使用特殊文件系统对象)。如果这是合适的,请看这里: Microsoft FileSystemObject

假设它是一个传统的网页,它需要将生成的javascript保存到Savedfunction.js文件中。

那只是一个文本文件,所以你可以......

  • 用户在您的网页上的textarea中添加新的javascript作为简单文字。

  • 当用户提交新功能(即点击“保存”或其他内容)时,请将HTML表单提交给服务器。

  • 让服务器上的接收脚本修改文件并将其添加到js文件

即:正常的提交过程,只是附加到文件,恰好是一个javascript文件。如果有任何需要的参数,那么你可能还需要保留一个生成的函数列表和一个legitemate调用它们的文本 - 否则用户(或网页)如何知道如何使用它们?

要查看可用的javascript函数,请打开(通过服务器脚本)读取js文件的网页,以获取有关菜单选项中显示内容的数据,并将js文件作为脚本包含在内,以便单击右侧选项运行正确的javascript例程。

关于提交javascript时的语法检查..我会把这一点留给你!我想你可以使用window.eval(包装在try .. catch块中)来查看它是否在提交之前编译。