当用户输入达到一定大小时,Javascript cookie不保存

Javascript cookie not saving when user input reaches a certain size

本文关键字:小时 Javascript cookie 保存 输入 用户      更新时间:2023-09-26

我试图在卸载页面时将用户输入从文本区保存在javascript cookie中,然后在用户返回时将其读取回文本区。我遇到的问题是,当用户输入达到一定长度时,cookie不会保存。

这里是html:

<html>
<head>
<title>Cookie Test</title>
<link rel="stylesheet" type="text/css" href="css/site.css">
</head>
<body class="full" onload="GetCookies()" onunload="WriteCookies()">
    <div class="fullscreen-overlay" id="fullscreen_overlay">
  <div class="fullscreen-container js-fullscreen-container">
<div class="textarea-wrap">
  <textarea name="fullscreen-contents" id="fullscreen-contents"></textarea>
</div>
 </div>
</div>
</body>
</html>
Javascript:

function WriteCookies() {
        var d = new Date();
        var n = document.getElementById('fullscreen-contents').value;
        d.setDate(d.getDate() + 1);
        document.cookie = "mainCookie = " + n + "; expires = " + d.toGMTString() + "";
    }
    function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1);
            if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
        }
        return "";
    }
    function GetCookies() {
        document.getElementById('fullscreen-contents').value = getCookie('mainCookie');
    }

你知道是怎么回事吗?谢谢!

cookie的最大大小为4093字节。也许长弦只是超过了极限。你可以考虑localStorage或sessionStorage

var text = document.getElementById('fullscreen-contents');
function saveText() {
  localStorage.savedText = text.value;
  console.log("saved");
}
function getText() {
  if (localStorage.savedText) {
    text.value = localStorage.savedText;
    console.log("loaded");
  }
}

编辑:这是一个小提琴