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 17 Javascript
jquery.validate分组验证代码
Mar 17 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
JavaScript如何自定义trim方法
Jul 28 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
jQuery简单倒计时效果完整示例
Sep 20 Javascript
实例解析Array和String方法
Dec 14 Javascript
微信小程序中多个页面传参通信的学习与实践
May 05 Javascript
JavaScript简单拖拽效果(1)
May 17 Javascript
基于Vue实现微信小程序的图文编辑器
Jul 25 Javascript
react antd表格中渲染一张或多张图片的实例
Oct 28 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
论建造顺序的重要性
2020/03/04 星际争霸
记录mysql性能查询过程的使用方法
2013/05/02 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
JS实现可控制的进度条
2020/03/25 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
python生成IP段的方法
2015/07/07 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
NumPy 数组使用大全
2019/04/25 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
考生诚信考试承诺书
2014/05/23 职场文书
2014年外联部工作总结
2014/11/17 职场文书
个人先进事迹总结
2015/02/26 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
十八大观后感
2015/06/12 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
多表查询、事务、DCL
2021/04/05 MySQL
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏