簡體   English   中英

Chrome 擴展沒有數據在彈出窗口刷新后幸存

[英]Chrome Extension no data is surviving the popup refresh

Pre: 我在 chrome 中並登錄了

  1. 我啟動(單擊)我的彈出窗口 window。它會在所有存儲(windowlocal、windowsession、google local 和 google sync)中保存一些數據
  2. 我右鍵單擊它,然后選擇檢查。
  3. 開發工具 window 出現在彈出窗口中
  4. 我查看 Dev Tools 中的 Storage Explorer,我看到我的所有數據都在那里,在所有存儲中。 在此處輸入圖像描述
  5. 我在 popup.js 代碼的開頭放置了一個斷點。 這個斷點在它加載任何數據或做任何事情之前。 它在構造函數的開頭。
  6. 我在 Dev Tools window 上按 F5。它閃爍並返回

預期結果:我看到了我保存的所有數據

實際結果:任何存儲中都沒有任何數據。 一切都過去了。

我究竟做錯了什么? 彈出窗口不應該能夠保存數據嗎?

問題

  1. 如果您在開發工具上的擴展構造函數中放置斷點,存儲資源管理器可能不會顯示任何內容,因為它尚未加載
  2. 在我的構造函數中,我從存儲中正確加載設置,但隨后立即用默認值覆蓋它們,因為我首先調用了 load(),它已經變成異步的,並且在我的設置屬性設置器的代碼中更進一步- 保存默認值,所以當 load() 自行執行時,它只是讀取(剛剛)保存的默認值。

解決方案

我將加載代碼從構造函數中帶出到async function 中,並在構造函數的末尾調用了 function。 在那個 function 中,我使用await來確保設置從存儲中加載,然后繼續設置設置屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM