Chrome扩展程序是否可以访问本地存储?

Luk*_*uke 27 google-chrome local-storage google-chrome-extension

是否可以在Chrome扩展程序的上下文中重新启动浏览器后以可访问的方式存储数据?

小智 44

甚至比那简单:

阅读:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];
Run Code Online (Sandbox Code Playgroud)

来写:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;
Run Code Online (Sandbox Code Playgroud)

摆脱:

    delete localStorage["TheKeyToMyStoredValue"];
Run Code Online (Sandbox Code Playgroud)

  • 你先生是99级德鲁伊和圣徒. (2认同)

Joh*_*lla 21

是的.如何完成这一过程的完整演练可能会超出合理的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);
  }
}
Run Code Online (Sandbox Code Playgroud)


Ken*_*Liu 7

Chrome还支持HTML5 Web数据库规范.这为您提供了一个本地SQL数据库,因此您可以执行更复杂的操作,而不仅仅是在本地存储中存储名称/值对.


Pat*_*sen 5

当前的chrome版本具有本地存储.

我自己用过它.您可以使用modernizr来检测浏览器是否支持它.我已经为客户编写了一个解决方案,如果没有本地存储,我会回退到cookie,但这不应该是扩展的问题.