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 相关文章推荐
jQuery事件 delegate()使用方法介绍
Oct 30 Javascript
使用JS读秒使用示例
Sep 21 Javascript
js时间比较示例分享(日期比较)
Mar 05 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
Jun 20 Javascript
js限制文本框只能输入中文的方法
Aug 11 Javascript
详解Javascript继承的实现
Mar 25 Javascript
Angular.js 实现数字转换汉字实例代码
Jul 14 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 Javascript
JS严格模式知识点总结
Feb 27 Javascript
微信小程序提取公用函数到util.js及使用方法示例
Jan 10 Javascript
JS实现放大镜效果
Sep 21 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
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python tkinter组件摆放方式详解
2019/09/16 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
公司出纳岗位职责
2013/12/07 职场文书
技术总监管理职责范本
2014/03/06 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
大型演出策划方案
2014/05/28 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
升职自我推荐信范文
2015/03/25 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
小学生暑假生活总结
2015/07/13 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
python 单机五子棋对战游戏
2022/04/28 Python