Why LocalStorage Stays Undeleted?
我知道以前有人问过这个问题,但这就是我正在经历的 -
我正在开发一个需要保留一些数据的 Chrome 扩展程序,并且我正在使用 localStorage 。当我转到 Settings->Tools->Clear Browsing Data 并检查所有内容(包括\\'从一开始\\')时,我希望我的背景页面的 localStorage 会清除。
然而,一切都保持不变。本地存储没有被删除!
并不是我不喜欢这种行为,它实际上对我的应用程序来说非常棒,但这正常吗?一旦用户尝试清除所有内容,localStorage 是否不应该删除,就像 cookie 应该删除一样?
附言
我发现这个不错的博客询问并尝试回答相同的问题:
http://sharonminsuk.com/blog/2011/03/21/clearing-cache-has-no-effect-on-html5-localstorage-or-sessionstorage/
似乎行为从 browser 更改为 browser 。我谈到的行为发生在 Chrome 28.0.1500.71 m
此错误不是正常行为。 (回答你的问题)
我称这是一个错误,因为有人可能正在图书馆中使用带有某种类型的本地托管应用程序的计算机。有一个明确的预期,即在称为"时间开始"的清除下,数据不会以任何方式保留
当您清除所有浏览器数据时,Firefox 会清除 localStorage 数据。如果文件存储在本地或托管在 Web 域上,它会执行此操作。
仅当您的代码托管在域上时,Chrome 才会清除 localStorage 数据。
我为这个错误制作了一个视频..
https://youtu.be/CgojKg4v7X0
将此 URL 与 HTML/JS 保存到本地驱动器以重现错误...
https://html5dataprivacy.github.io/
步骤:
- 加载包含 javascript HTML5 存储代码的本地网页
-
以更改数据的方式与存储数据的页面交互
-
清除历史上的一切,直到时间的开始
-
将键盘和鼠标交给图书馆或公共咖啡馆的其他用户...
结果:javascript存储被保留,其他人可以看到你的数据...
预期结果:为键盘上的新人清除数据
注意:截至 2017 年 4 月 19 日,Firefox 当前版本不存在此错误。如果 chrome 在托管域上运行,则不会失败
解决方法:在您清除内容到开始时间后,您必须打开控制台并输入"localStorage.clear()"
ps:请善待。这是我第一次尝试回答 StackOverFlow :)
1 | storageArea.remove(string or array of string keys, function callback) |
你试过吗?输入您的扩展代码并调用它