|
轉(zhuǎn)自: http://www.fayland.org/journal/AutoSave.html
這個(gè)功能很常見。是為了防止瀏覽器崩潰或提交不成功而導(dǎo)致自己辛辛苦苦寫就的東西消失掉。Gmail 里也這個(gè)東西。它的原理是將該文本框的東西存儲進(jìn)一個(gè) Cookie. 如果沒提交成功(原因可能是瀏覽器崩潰),下次訪問該頁面時(shí)詢問是否導(dǎo)入上次存儲的東西。
function AutoSave(it) { // it 指調(diào)用的文本框
var _value = it.value; // 獲得文本框的值
if (!_value) {
var _LastContent = GetCookie('AutoSaveContent'); // 獲得 cookie 的值,這里的 GetCookie 是個(gè)自定義函數(shù),參見源代碼
if (!_LastContent) return; // 如果該 cookie 沒有值,說明是新的開始
if (confirm("Load Last AutoSave Content?")) { // 否則詢問是否導(dǎo)入
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();
而這 HTML 中應(yīng)當(dāng)如此:// SetCookie 這里就是設(shè)置該 cookie
document.cookie = "AutoSaveContent=" + escape (_value) + expires;
}
}
第一句導(dǎo)入 js, 第二句的 onSubmit 指如果提交了就刪除該 cookie, 而 DeleteCookie 也是自定義的一個(gè)函數(shù)。參見源代碼。
<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>
textarea 里的 onkeyup 是指當(dāng)按鍵時(shí)訪問 AutoSave, 用以存儲新寫入的文字。
而 onselect 和 onclick 用以新訪問時(shí)確定導(dǎo)入自動保存的文字。
大致就是如此。 Enjoy!
源代碼:http://www.fayland.org/Javascript/AutoSave.js
JavaScript技術(shù):AutoSave/自動存儲功能實(shí)現(xiàn),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。