Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript本地保存的Keydown事件_Javascript_Jquery_Html_Css - Fatal编程技术网

使用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();