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蒙版控件实现代码
Dec 08 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
Dec 23 Javascript
用JS实现图片轮播效果代码(一)
Jun 26 Javascript
jQuery制作网页版选项卡
Jul 28 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
解析Javascript单例模式概念与实例
Dec 05 Javascript
react-redux中connect()方法详细解析
May 27 Javascript
微信小程序 scroll-view实现锚点滑动的示例
Dec 06 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
移动端手指操控左右滑动的菜单
Sep 08 Javascript
vue 内联样式style中的background用法说明
Aug 05 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
python3实现基于用户的协同过滤
2018/05/31 Python
Python中的heapq模块源码详析
2019/01/08 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
python访问hdfs的操作
2020/06/06 Python
python RSA加密的示例
2020/12/09 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
电气自动化自荐信
2013/10/10 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
创业计划书之养殖业
2019/10/11 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫
DQL数据查询语句使用示例
2022/12/24 MySQL