保留页面重新加载/刷新时的输入值

时间:2018-01-24 22:42:43

标签: html angular typescript

我试图将用户写入的任何内容保留在输入字段内,输入字段即使在输入窗口关闭后又有人重新打开它。 例如: 我在“输入”字段中键入“hello”,然后关闭窗口。当我重新打开窗户时,我希望再次在现场看到“你好”。

有办法做到这一点吗?

非常感谢,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用 Window.localStorage 来存储字符串化的JSON,例如

{
    "name" : "John",
    "surname" : "Doe",
    "message" : "Hello, World!"
}

其中namesurnamemessage是实际的元素name="***"属性。

jsFiddle demo (输入一些值并刷新页面)

// Get Object literal from LocalStorage
let memory = JSON.parse(localStorage.memory || "{}");

// Loop input elements on page
[...document.querySelectorAll('input, textarea')].forEach( el => {

    // prepopulate from memory
    if ( el.name in memory ) {
        el.value = memory[el.name]
    }

    // save to memory
    el.addEventListener("input", () => {
        memory[el.name] = el.value;
        localStorage.memory = JSON.stringify(memory);
    });
});