为什么我无法在ios9门户网站页面上获得localStorage?

时间:2019-10-16 07:23:09

标签: javascript safari local-storage

当我在safari(ios9,门户网站网页)中未启用cookie时,我想用cookie覆盖localStorage,而我用window.localStorage却得到null

我尝试用Object.defineProperty(window, 'localStorage', {})定义localStorage,但出现错误:TypeError:试图更改unconfigurable属性的可配置属性;

就像在野生动物园中运行Object.defineProperty(window, 'localStorage', {configurable: false, value: null})一样。然后我无法获取localStorage或将其覆盖。

您可以在野生动物园中运行它。

Object.defineProperty(window, 'localStorage', {configurable: false, value: null}). 

然后,我已经尝试过这种方法,但是没有任何效果。

Object.defineProperty(window, 'localStorage', {configurable: true, value: {}).  // TypeError: Attempting to change configurable attribute of unconfigurable property.  
localStorage.setItem = function(){} // TypeError: null is not an object (evaluating 'localStorage.setItem = function(){}').  

我该如何解决?即使使用 proto 或更高版本。

我在ios9门户网站页面中发现此问题。但您可以使用Object.defineProperty(window, 'localStorage', {configurable: false, value: null})

在任何Safari浏览器中重现它

1 个答案:

答案 0 :(得分:0)

您正尝试用空白对象替换localStorage API 。如果可以的话,它将破坏页面中的localStorage,而不是清空存储的数据。

要重置它,请使用TextBox