You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript使用sessionStorage存储可编辑输入时页面无内容、刷新缺字符问题

问题根因与修复方案

1. 页面首次加载无内容

根因:首次打开页面时,sessionStorage中还没有存储store字段,sessionStorage.getItem('store')会返回null,代码直接将null赋值给可编辑段落的textContent,覆盖了HTML中预设的默认值Riya Sharma,因此页面显示为空。
修复逻辑:读取存储内容后先做非空判断,仅当存储有有效值时再覆盖元素默认内容。

2. 刷新后丢失最后一个输入字符

根因:你绑定的是keydown事件,该事件在按键按下的瞬间触发,此时新输入的字符还没有写入到元素的textContent中,代码读取到的是输入前的旧内容,因此最后一次按键输入的字符不会被存入sessionStorage。
修复逻辑:将监听事件替换为input事件,该事件会在元素内容完成变更后触发,能保证读取到的是最新输入的内容。


修正后的JS代码

if(typeof Storage !== 'undefined'){
    const element = document.getElementById('name');
    // 读取存储的内容,非空才覆盖默认值
    const savedText = sessionStorage.getItem('store');
    if(savedText) {
        element.textContent = savedText;
    }
    // 监听input事件,内容变更后实时存储
    element.addEventListener("input" , function(){
        sessionStorage.setItem("store", element.textContent);
    });
}else {
    document.getElementById("name").innerHTML = "抱歉,你的浏览器不支持Web Storage特性...";
}

内容的提问来源于stack exchange,提问作者Nitin Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 12:27:00