почему я не могу получить localStorage на веб-странице портала ios9? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу перезаписать свой localStorage файлом cookie, когда он не включен в safari (ios9, веб-страница портала), и я получил значение null с window.localStorage

Я попытался определить localStorage с помощью Object.defineProperty(window, 'localStorage', {}), и я получил ошибку: TypeError: Попытка изменить настраиваемый атрибут неконфигурируемого свойства;

Это похоже на запуск 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, веб-странице портала. но вы можете воспроизвести его в любом браузере Safari с Object.defineProperty(window, 'localStorage', {configurable: false, value: null})

1 Ответ

0 голосов
/ 16 октября 2019

Вы пытаетесь заменить localStorage API пустым объектом. Если бы вы могли сделать это, то break localStorage на странице не очистило бы сохраненные данные.

Чтобы сбросить его, используйте localStorage.clear();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...