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 相关文章推荐
JavaScript 变量基础知识
Nov 07 Javascript
jquery获取自定义属性(attr和prop)实例介绍
Apr 21 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
一款由jquery实现的整屏切换特效
Sep 15 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
Feb 28 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
最全的Javascript编码规范(推荐)
Jun 22 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
Sep 21 Javascript
jQuery自定义插件详解及实例代码
Dec 29 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
AngularJS 异步解决实现方法
Jun 12 Javascript
微信小程序实用代码段(收藏版)
Dec 17 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 mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
PHP的基本常识小结
2013/07/05 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
浅析Cookie中的Path与domain
2013/12/18 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
React Form组件的实现封装杂谈
2018/05/07 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
js实现无缝滚动双图切换效果
2019/07/09 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
教师自我评价范文
2013/12/16 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
大型营销活动计划书
2014/04/28 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
小学班主任评语
2014/12/29 职场文书
公司庆典欢迎词
2015/01/26 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers