AutoSave/自动存储功能实现


Posted in Javascript onMarch 24, 2007

转自: http://www.fayland.org/journal/AutoSave.html

这个功能很常见。是为了防止浏览器崩溃或提交不成功而导致自己辛辛苦苦写就的东西消失掉。Gmail 里也这个东西。
它的原理是将该文本框的东西存储进一个 Cookie. 如果没提交成功(原因可能是浏览器崩溃),下次访问该页面时询问是否导入上次存储的东西。
function AutoSave(it) { // it 指调用的文本框
    var _value = it.value;    // 获得文本框的值
   if (!_value) {
       var _LastContent = GetCookie('AutoSaveContent'); // 获得 cookie 的值,这里的 GetCookie 是个自定义函数,参见源代码

       if (!_LastContent) return; // 如果该 cookie 没有值,说明是新的开始

       if (confirm("Load Last AutoSave Content?")) { // 否则询问是否导入
           it.value = _LastContent;
           return true;
       }            
   } else {

       var expDays = 30;
       var exp = new Date();
       exp.setTime( exp.getTime() + (expDays * 86400000) ); // 24*60*60*1000 = 86400000
       var expires='; expires=' + exp.toGMTString();

       // SetCookie 这里就是设置该 cookie
        document.cookie = "AutoSaveContent=" + escape (_value) + expires;
    }
}
而这 HTML 中应当如此:
<script language=JavaScript src='/javascript/AutoSave.js'></script>
<form action="submit" method="POST" onSubmit="DeleteCookie('AutoSaveContent')">
<textarea rows="5" cols="70" wrap="virtual" onkeyup="AutoSave(this);" onselect="AutoSave(this);" onclick="AutoSave(this);"></textarea>
<input type="submit"></form>
第一句导入 js, 第二句的 onSubmit 指如果提交了就删除该 cookie, 而 DeleteCookie 也是自定义的一个函数。参见源代码。
textarea 里的 onkeyup 是指当按键时访问 AutoSave, 用以存储新写入的文字。
而 onselect 和 onclick 用以新访问时确定导入自动保存的文字。

大致就是如此。 Enjoy!

源代码:http://www.fayland.org/javascript/AutoSave.js

 

Javascript 相关文章推荐
JS的数组的扩展实例代码
Jul 09 Javascript
ext 同步和异步示例代码
Sep 18 Javascript
JQuery文本框高亮显示插件代码
Apr 02 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
Dec 31 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
js控制浏览器全屏示例代码
Feb 20 Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
JavaScript中的 new 命令
May 22 Javascript
重学JS之显示强制类型转换详解
Jun 30 Javascript
用 javascript 实现的点击复制代码
Mar 24 #Javascript
基于逻辑运算的简单权限系统(实现) JS 版
Mar 24 #Javascript
用js实现的仿sohu博客更换页面风格(简单版)
Mar 22 #Javascript
漂亮的提示信息(带箭头)
Mar 21 #Javascript
自动生成文章摘要的代码[JavaScript 版本]
Mar 20 #Javascript
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 #Javascript
表单提交时自动复制内容到剪贴板的js代码
Mar 16 #Javascript
You might like
神族 PROTOSS 概述
2020/03/14 星际争霸
php去除重复字的实现代码
2011/09/16 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
详解Python中最难理解的点-装饰器
2017/04/03 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
python打印异常信息的两种实现方式
2019/12/24 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
结婚典礼证婚词
2014/01/11 职场文书
驾驶员培训方案
2014/05/01 职场文书
医学检验专业自荐信
2014/09/18 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
党支部半年考察意见
2015/06/01 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
Redis三种集群模式详解
2021/10/05 Redis
canvas实现贪食蛇的实践
2022/02/15 Javascript