如何仅对输入字段进行编码,以便用户在关闭选项卡后“重新打开已关闭的选项卡”时,键入的值仍然存在?

问题描述

好的,我知道如何使用 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>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...