网页刷新重开保留已发布评论

简易评论发布拓展:利用localstorage实现网页刷新和关闭再打开保留评论

简易评论发布的实现
html骨架
js实现

<script>
    var btn = document.querySelector('button')
    var ul = document.querySelector('ul')
    var uname = document.querySelector('#uname')
    var content = document.querySelector('#content')
    var suarr = localStorage.getItem("username")
    var scarr = localStorage.getItem("content")
    var uarr2 = JSON.parse(suarr) || []
    // 利用JSON的parse方法将获取的字符串转为数组uarr2(uarr即usernameArr,carr同理),当未有评论发布时,为防止uarr2.length为null,程序运行报错,利用||将无缓存评论时的length设置为0
    var carr2 = JSON.parse(scarr) || []
      //同理转化carr2
    var count = uarr2.length
    window.onload = function () {
        if (suarr && scarr) {
       // 检测localStorage内是否存在转化后的json字符串
            for (let i = 0; i < count; i++) {
                var li = document.createElement('li')
                li.innerHTML = "<div class='a'>" + carr2[i] + "</div>" + "<div class='b'><span>发布人:</span>" + uarr2[i] + "</div>"
                ul.insertBefore(li, ul.children[0])
            }
		// 遍历数组,将已发布的评论创建在页面上
        }
    }

    btn.onclick = function () {
        if (uname.value == '') {
            alert('姓名不可为空')
            return false
        } else if (content.value == '') {
            alert('评论内容不可为空')
            return false
        } else {
            var li = document.createElement('li')
            li.innerHTML = "<div class='a'>" + content.value + "</div>" + "<div class='b'><span>发布人:</span>" + uname.value + "</div>"
            ul.insertBefore(li, ul.children[0])
            uarr2.push(uname.value)
            carr2.push(content.value)
            // 每次点击提交发布评论都将评论的内容和发布人推入对应的数组
            localStorage.setItem("username", JSON.stringify(uarr2))
            localStorage.setItem("content", JSON.stringify(carr2))
            // 利用JSON.stringify将数组转为JSON格式的字符串存入localStorage
        }
    }
</script>
2022.6.28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值