From 324672a243fa9e71b9d4018b3d225b9cd63c253e Mon Sep 17 00:00:00 2001 From: Harvey Date: Thu, 6 May 2021 13:03:44 +0800 Subject: [PATCH] Update storage.js --- packages/artplayer/src/storage.js | 37 ++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/packages/artplayer/src/storage.js b/packages/artplayer/src/storage.js index c8ea31dd2..09f392275 100644 --- a/packages/artplayer/src/storage.js +++ b/packages/artplayer/src/storage.js @@ -1,27 +1,44 @@ export default class Storage { constructor() { this.name = 'artplayer_settings'; + this.settings = {}; } get(key) { - const storage = JSON.parse(localStorage.getItem(this.name)) || {}; - return key ? storage[key] : storage; + try { + const storage = JSON.parse(window.localStorage.getItem(this.name)) || {}; + return key ? storage[key] : storage; + } catch (error) { + return key ? this.settings[key] : this.settings; + } } set(key, value) { - const storage = Object.assign({}, this.get(), { - [key]: value, - }); - localStorage.setItem(this.name, JSON.stringify(storage)); + try { + const storage = Object.assign({}, this.get(), { + [key]: value, + }); + window.localStorage.setItem(this.name, JSON.stringify(storage)); + } catch (error) { + this.settings[key] = value; + } } del(key) { - const storage = this.get(); - delete storage[key]; - localStorage.setItem(this.name, JSON.stringify(storage)); + try { + const storage = this.get(); + delete storage[key]; + window.localStorage.setItem(this.name, JSON.stringify(storage)); + } catch (error) { + delete this.settings[key]; + } } clean() { - localStorage.removeItem(this.name); + try { + window.localStorage.removeItem(this.name); + } catch (error) { + this.settings = {}; + } } }