是否有可能将数据存储在一个方式,这将是一个Chrome扩展的背景下,重新启动浏览器访问?

有帮助吗?

解决方案

即使比较简单的:

要读:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];

要写入:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;

要摆脱:

    delete localStorage["TheKeyToMyStoredValue"];

其他提示

是,它是。去了怎样做到这一点可能会超过合理的StackOverflow的答案的长度,所以我将把你的这个非常广泛教程 按Rajdeep Dua的。

相关的代码看起来是这样的:

// Store item in local storage:
function setItem(key, value) {
  try {
    log("Storing [" + key + ":" + value + "]");
    window.localStorage.removeItem(key);      // <-- Local storage!
    window.localStorage.setItem(key, value);  // <-- Local storage!
  } catch(e) {
    log("Error inside setItem");
    log(e);
  }
  log("Return from setItem" + key + ":" +  value);
}

// Gets item from local storage with specified key.
function getItem(key) {
  var value;
  log('Retrieving key [' + key + ']');
  try {
    value = window.localStorage.getItem(key);  // <-- Local storage!
  }catch(e) {
    log("Error inside getItem() for key:" + key);
  log(e);
  value = "null";
  }
  log("Returning value: " + value);
  return value;
}

// Clears all key/value pairs in local storage.
function clearStrg() {
  log('about to clear local storage');
  window.localStorage.clear(); // <-- Local storage!
  log('cleared');
}

function log(txt) {
  if(logging) {
    console.log(txt);
  }
}

铬还支持HTML5 Web数据库规格。这给你一个本地SQL数据库,这样你就可以比简单地存储在本地存储名称/值对做多复杂的事情。

当前铬版本具有本地存储。

我已经用它自己。您可以使用Modernizr的检测是否浏览器支持与否。 我已经写了一个客户,我做了回退到饼干,如果没有本地存储存在的解决方案,但是这不应该成为信息的问题。

如今,它可能会更好使用 chrome.storage chrome.storage是异步的,这使得它更快,localStorage的被限制为5MB。

有已经在这里了一些伟大的答案,但请注意,如果你决定在你的扩展使用内容脚本,该内容脚本将无法访问localStorage的。因此 chrome.storage 是一个很好的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top