问题描述
好的,我知道如何使用 sessionStorage 在页面刷新或向后或向前导航时保留该值,但是我无法在用户“重新打开关闭的选项卡”后保留该值(通过按 ctrl+shift+t) 关闭选项卡后,因为它创建了一个新会话。另外我不想使用localStorage。我不确定,但也许,答案与 window.history 有关。你告诉我。所以现在我的问题是,是否可以在不使用 localStorage 或导入任何其他 API 的情况下用纯 JavaScript 和 HTML 编写这样的代码?如果是,请分享代码。提前致谢。
解决方法
您可以将其放入 cookie 中,例如:
function setCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
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,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
,
document.getElementById("myText").value = (window.history.state && window.history.state['pie']) || '';
document.getElementById('myText').addEventListener("keyup",function (evt) {
window.history.replaceState(
{ ...window.history.state,'pie': document.getElementById("myText").value },document.title
);
},false);
<!DOCTYPE html>
<html>
<body>
Name: <input type="text" onchange="myFunction()" id="myText" value=''>
</body>
</html>