我的案例:localStorage键+值,当浏览器关闭时应该删除,而不是单个选项卡。

请看看我的代码,如果它是正确的和什么可以改进:

//创建localStorage key + value if (localStorage) { localStorage。myPageDataArr = { "name" => "Dan", "lastname" => "Bonny" }; } //当浏览器关闭时- psedocode $(窗口).unload(函数(){ localStorage。myPageDataArr = undefined; });


当前回答

为什么不使用sessionStorage?

sessionStorage对象等同于localStorage对象,只是它只存储一个会话的数据。当用户关闭浏览器窗口时,数据将被删除。”

http://www.w3schools.com/html/html5_webstorage.asp

其他回答

如果您希望在浏览器关闭时删除键,则应该使用sessionStorage。

我不认为这里提出的解决方案是100%正确的,因为窗口。onbeforeunload事件不仅在浏览器/选项卡关闭时被调用(这是必需的),而且在所有其他几个事件上也被调用。(可能不需要)

有关可以触发window.onbeforeunload的事件列表的更多信息,请参阅此链接

http://msdn.microsoft.com/en-us/library/ms536907 (VS.85) . aspx

localStorage.removeItem(key);  //item

localStorage.clear(); //all items

下面是一个简单的测试,看看你在使用本地存储时是否有浏览器支持:

if(typeof(Storage)!=="undefined") {
  console.log("localStorage and sessionStorage support!");
  console.log("About to save:");
  console.log(localStorage);
  localStorage["somekey"] = 'hello';
  console.log("Key saved:");
  console.log(localStorage);
  localStorage.removeItem("somekey");  //<--- key deleted here
  console.log("key deleted:");
  console.log(localStorage);
  console.log("DONE ===");
} else {
  console.log("Sorry! No web storage support..");
}

它为我工作如预期(我使用谷歌Chrome)。 改编自:http://www.w3schools.com/html/html5_webstorage.asp。

为什么不使用sessionStorage?

sessionStorage对象等同于localStorage对象,只是它只存储一个会话的数据。当用户关闭浏览器窗口时,数据将被删除。”

http://www.w3schools.com/html/html5_webstorage.asp