2012-09-14 157 views
1

我最近开发了一个脚本,基于document.execCommand()突出显示网页中的文本,但如果刷新我的网页,更改将消失。刷新后保留网页的更改

我该如何保持每个用户的更改?

+0

你能解释一下刷新后你想要坚持什么吗? – Sphvn

+0

我想用document.execCommand()函数保持highlited文本。我不能使用服务器端,所以它将是客户端。再次感谢你。 –

回答

1

因为我不确定你想要坚持什么,我会给一些通用的信息。

在存储上有一些很好的阅读DiveIntoHtml5

,而这些通常被视为HTML5的浏览器支持大得多我建议考虑看看要么sessionStoragelocalStorage现在。

你可以看到keyValueStorage支持在CanIUse

您可以存储键/值对如下:

localStorage.setItem("key", "value"); 

然后你可以检索值如下:

localStorage.getItem("key"); 

删除:

localStorage.removeItem("key"); 

sessionStorage的工作方式与上述相同,但只会在浏览器打开时保留。它坚持浏览器的“会话”。但是,localStorage将一直保留,直到通过代码或清除浏览器将其删除。

+0

谢谢你,我将潜入本地存储的主题 –

0

微软在state management for web applications上有很好的指导。检查出来,你会看到所有的选项,你会问。然后选择最适合的方式。 一旦你知道你想要什么,你可以搜索堆栈溢出来查找问题的具体实现。肯定会有答案。

编辑:表5.5:“Web应用程序的状态管理机制”是您想要查看的概述。

1

有两种方法可以保存状态。

一种是编写将信息传递回服务器进行存储的客户端代码。

另一种方法是在客户端计算机上保存所谓的cookie。通常,JavaScript不允许在客户端计算机上读写文件(一种重要的安全功能),但它可以生成数据字符串,Web浏览器可以将其存储在通常称为cookie jar的特殊文件中。 cookie jar是一个配置文件,它提供了关于如何设置浏览器的信息。

请记住,没有cookie可以大于4KB。

+0

请不要建议cookies!我们已经不能过去了! – Sphvn

+1

你是对的,但我仍然必须处理即7,所以饼干是一个很好的选择。 – DadViegas

+0

但是你最好使用一个简单的Polyfill来支持IE7。至少只有IE7实际上会使用cookies。 – Sphvn