javascript - window.localStorage.setItem 和 localStorage.setItem 之间应该有什么区别吗?

标签 javascript google-chrome google-chrome-extension local-storage google-chrome-devtools

我有一个适用于 Mac 和 Linux 用户但不适用于 Windows 用户的 Chrome 扩展程序。当我进入控制台并在 localStorage 中设置一个项目时,它工作正常,但是当用户尝试使用扩展时,项目并没有通过我的实际代码在 localStorage 中设置。

我目前的假设是使用 window.localStorage 可能 让它工作,但我没有数据支持它。

这里的任何人都可以添加颜色来说明为什么这可能有效或无效吗?

最佳答案

如果扩展的全局上下文不是与普通 Javascipt 应用程序相反的 window 对象,那么您将需要引用它。

您还可以缓存它以节省一些树行走:

if (typeof localStorage === 'undefined' && window.localStorage)
    localStorage = window.localStorage;

现在您应该可以在没有前缀的情况下使用相同的代码。

(我相信 Chrome 扩展程序有一个单独但类似的存储机制)。

这可能也很有趣:
https://developer.chrome.com/extensions/storage.html

关于javascript - window.localStorage.setItem 和 localStorage.setItem 之间应该有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17140838/

相关文章:

javascript - 我可以允许从客户端动态加载 JS 模块吗?

javascript - AngularJS ng-repeat 操作 ID

javascript - 使用下拉选择在 KnockoutJS 中使用默认值填充文本框

html - whatsapp html 链接不适用于 iphone 8,chrome

javascript - 如果弹出窗口关闭,如何在background.js和popup.js之间发送数据?

javascript - 如何防止div :hover transitions from being disabled by javascript div style attributes alterations

google-chrome - 在没有第三方处理器的情况下使用 PaymentRequest 接收付款

Angular4 Content-Security-Protocol 拒绝加载字体

由于不安全评估,Vue.js 3 扩展在使用 "vue-cli-service build"时中断

google-chrome - 如何在 chrome 扩展 contentScript 中启用获取 POST?