使用javascript本地保存的Keydown事件
我正在为课程作业制作一个基本的在线编辑界面。每次有使用javascript本地保存的Keydown事件,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在为课程作业制作一个基本的在线编辑界面。每次有按键按下事件时,我都想保存我的#textareadiv的内容。代码部分工作,但如果光标不移到div顶部,我无法编辑文本 document.addEventListener('keydown',本地保存); const saveLocally=函数(){ 让areaText=document.getElementById(“textArea”); console.log(区域文本); 让text=document.getElementById(“
按键按下
事件时,我都想保存我的#textarea
div的内容。代码部分工作,但如果光标不移到div顶部,我无法编辑文本
document.addEventListener('keydown',本地保存);
const saveLocally=函数(){
让areaText=document.getElementById(“textArea”);
console.log(区域文本);
让text=document.getElementById(“textArea”).innerHTML;
console.log(文本);
让本地数据;
setItem('siteData',text);
localData=localStorage.getItem('siteData');
log(localData);
log(localStorage.getItem('siteData'));
areaText.innerHTML=本地数据;
}
问题是因为在有人键入后,您立即更新元素的
内部文本。这会在节点内容更改时影响光标。无论如何,您不需要这样做,因此可以删除该行
相反,您需要执行当页面加载时从localStorage检索值的逻辑。还要注意的是,您应该使用keyup
事件而不是keydown
,否则您将无法保存上次按下的键。试试这个:
let-areaText=document.getElementById(“textArea”);
const saveLocally=函数(){
让text=areaText.innerHTML;
setItem('siteData',text);
}
常量retrieveSavedText=函数(){
var text=localStorage.getItem('siteData');
areaText.innerHTML=文本;
}
文档。addEventListener('keyup',本地保存);
retrieveSavedText();