我寫了一個腳本,它自動保存textarea的onchange事件中的textarea值。我面臨的問題是,當用戶鍵入內容並突然停止時,直到用戶點擊屏幕上的其他位置纔會觸發onchange。是不是可以讓我的腳本工作方式,當用戶停止在textarea上打字:自動保存更改事件
<textarea onchange="onautosave()" id="autosave" ></textarea>
讓我們說5秒,然後功能onautosave()
被觸發?請讓我現在怎麼做。謝謝
我寫了一個腳本,它自動保存textarea的onchange事件中的textarea值。我面臨的問題是,當用戶鍵入內容並突然停止時,直到用戶點擊屏幕上的其他位置纔會觸發onchange。是不是可以讓我的腳本工作方式,當用戶停止在textarea上打字:自動保存更改事件
<textarea onchange="onautosave()" id="autosave" ></textarea>
讓我們說5秒,然後功能onautosave()
被觸發?請讓我現在怎麼做。謝謝
您可以使用onkeyup
事件和setTimeout()
觸發自動保存。下面是代碼(只勾勒整個事情)
<textarea onkeyup="autosave()" id="autosave" ></textarea>
var autosave_timer = null;
function save() {
// actual save code
}
function autosave() {
if(autosave_timer)
clearTimeout(autosave_timer);
autosave_timer = setTimeout(save, 5000);
}
請注意楔子超時。它有助於不會壓倒服務器。
如果我沒有錯,回答的代碼只適用於定時器,定時器只會啓動,然後當用戶停止在textarea上打字? – user3027531
計時器將從第一個輸入的字符開始,並在每個下一個輸入的字符上重置。但重要的是,可以說計時器在用戶停止輸入時開始。 – twil
感謝twil,我想要... – user3027531
您可能會使用keyup和keydown ..但想想一種方法來防止您的服務器被保存請求溢出;) – jantimon