javascript - 当用户关闭浏览器时是否可以保存所有字段信息?

标签 javascript

例如有人正在写文章,但不小心关闭了浏览器。是否可以保存他写的所有内容?

类似这样的:

onExit -> 获取用户填写的所有信息 -> 将信息保存在数据库中的 AJAX 请求。

或者

只有每隔x秒抢先保存才有可能吗?

最佳答案

我的公司通过运行 ajax 查询每 5 秒保存一次来实现此目的,但您应该查看 localStorage要在客户端上保存,请使用 onunload保存到该位置并稍后恢复。

我做了一个html5 notepad每个 onchange 事件以及每 500ms 和 onbeforeunload 存储到 localStorage 来保存一个字段,但它很容易修改,这是(必要的)代码:

<textarea placeholder="Type here, see it here..."  id="notepad"></textarea>
<script>
    var n = document.getElementById("notepad");
    /* save */
    var s = function(){localStorage.setItem("notepad", n.value);}
    /* retrieve (only on page load) */
    if(window.localStorage){ n.value = localStorage.getItem("notepad");}
    /* autosave onchange and every 500ms and when you close the window */
    n.onchange = s();
    setInterval( s, 500);
    window.onunload = s();
</script>

如果您在that page上查看源代码,您还会发现 polyfill用于支持旧版浏览器,但 localStorage 应该 work in IE8+

我不相信客户端能够单独在 onbeforeunload 中完成 ajax 调用,但我真的不知道该函数在顶级浏览器中的工作原理。

关于javascript - 当用户关闭浏览器时是否可以保存所有字段信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882012/

相关文章:

javascript - 进度条填充——jQuery实现

javascript - 使用内联创建行创建表

javascript - 保存 OAuth2 访问 token 以进行无 session 身份验证

javascript - 无法复制 Jquery Mobile 自动完成演示

javascript - 从 html 链接到其他网站上的直接 block 元素

javascript - if 语句中的函数执行多次

javascript - 具有动态功能的 Ramda 管道

javascript - DOCX Javascript 库追加表行

javascript - 删除类属性末尾的空格

javascript - Node EJS 将数据传递给包含