Cross-browser TextStorage
by sofish
at 2011-09-16 11:34:56
original http://sofish.de/1872
一直用着 UserData 来实现 IE 中的伪 LocalStorage。不过,并没有装成一个模块用。9.9 号去北京的那天上午写了一个解决方案。目标是模仿 HTML5 LocalStorage 的 API,实现 IE 上使用相同 API 就可以存储文本的方案。看代码不一定能了解所有逻辑,这里简单说一下,然后有兴趣的再看代码吧,或者直接拿去用。
- 利用 IE 的 userData Behavior 来实现 IE 的文本存储
- 将所有保存属性存于 <body> 中,并在 <html> 的 data-userData 做记号
为什么要只存储在 body 标签?因为如果存于不同标签,实现 localStorage.clear() 的效率将非常低。在 html 做标记只是为了方便 localStorage.clear() 的实现。至于没有 <body> / <html> 也可以运行 html,但这个方案不能运行,我觉得不用去支持,程序应该写给会最基本标准的人用。
- getItem / setItem / removeItem / clear 方法保持与 HTML5 LocalStorage 一样的用法
好吧,其他的,就自己看代码吧。Demo 在这里:Cross-browser TextStorage 。代码下面: