导航离开页面后保留textarea内容?

时间:2015-04-08 01:43:54

标签: javascript jquery html session

我有一个简单的textarea输入元素:

<textarea name="comment" id="comment"></textarea>

它位于用户将添加项目的页面上,因此它将经常导航到远离的位置。如果用户在textarea元素中键入内容并导航,他们将不得不重新输入所有内容。

我怎样才能使textarea元素中的任何类型都能存储,即使用户离开页面也是如此?我不希望有一个“保存”按钮,然后将其存储在$ _SESSION或SQL中,我希望有一种方法可以将文本保存在那里而无需导航到新页面。为了澄清,会话是A-OK,但我只是不希望用户必须按任何东西来存储它,我自动喜欢它。

1 个答案:

答案 0 :(得分:4)

解决方案

使用localStorage

window.onbeforeunload = function () {
    localStorage.setItem('comment-save', document.getElementById('commment').value);
}

然后加载页面

window.onload = function () {
    document.getElementById('comment').value = localStorage.getItem('comment-save');
}

说明

window.onbeforeunload将在页面关闭之前运行代码。您可以随时更改事件,例如

document.getElementById('comment').input

每次用户输入内容时都应保存该值。下一行会将textarea值存储在名为 comment-save localStorage项中

<小时/> 代码块将在页面加载时运行。它会找到#comment textarea并将其值设置为已保存的评论。

最后一个问题

如果用户提交评论,您可能不想再存储评论。在提交代码中,添加

localStorage.removeItem('comment-save');

为什么

为什么要在PHP上使用它? PHP被过度杀死以保存客户端数据。它还浪费了服务器端资源。