มีวิธีการรีเซ็ต / ล้าง localStorage ของเบราว์เซอร์ใน javascript หรือไม่?
มีวิธีการรีเซ็ต / ล้าง localStorage ของเบราว์เซอร์ใน javascript หรือไม่?
คำตอบ:
ใช้สิ่งนี้เพื่อล้าง localStorage:
localStorage.clear();
clear()
จะลบคีย์ localStorage และค่าทั้งหมดออกจากโดเมนเฉพาะที่คุณเปิด Javascript ไม่สามารถรับค่า localStorage จากโดเมนอื่นใดเนื่องจาก CORS
หากคุณต้องการลบรายการหรือตัวแปรเฉพาะออกจากที่เก็บข้อมูลในเครื่องของผู้ใช้คุณสามารถใช้
localStorage.removeItem("name of localStorage variable you want to remove");
var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
window.localStorage.clear(); //try this to clear all local storage
นี่คือฟังก์ชั่นที่จะช่วยให้คุณลบรายการ localStorage ทั้งหมดที่มีข้อยกเว้น คุณจะต้องjQueryสำหรับฟังก์ชั่นนี้ คุณสามารถดาวน์โหลดเค้า
คุณสามารถโทรแบบนี้ได้
let clearStorageExcept = function(exceptions) {
let keys = [];
exceptions = [].concat(exceptions); // prevent undefined
// get storage keys
$.each(localStorage, (key) => {
keys.push(key);
});
// loop through keys
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let deleteItem = true;
// check if key excluded
for (let j = 0; j < exceptions.length; j++) {
let exception = exceptions[j];
if (key == exception) {
deleteItem = false;
}
}
// delete key
if (deleteItem) {
localStorage.removeItem(key);
}
}
};
undefined
กุญแจสำคัญที่ถูกต้องสำหรับsetItem
และgetItem
localStorage.setItem(undefined, 'example Txt!')
จะดำเนินการจัดเก็บไว้ภายใต้คีย์'undefined'
ที่คุณเห็นเมื่อคุณเรียกใช้รหัสต่อไปนี้ ออกจะconsole.log(localStorage.getItem('undefined'))
example Txt!
LocalStorage window
จะแนบอยู่ทั่วโลก เมื่อเราล็อกโลคัลสตอเรจใน Chrome devtools เราจะเห็นว่ามันมี API ดังต่อไปนี้:
เราสามารถใช้ API ต่อไปนี้สำหรับการลบรายการ:
localStorage.clear()
: ล้างการจัดเก็บในพื้นที่ทั้งหมดlocalStorage.removeItem('myItem')
: เพื่อลบแต่ละรายการก่อนอื่นคุณต้องตรวจสอบเพื่อให้แน่ใจว่า localStorage เปิดใช้งานอยู่ ฉันอยากจะแนะนำให้ทำเช่นนี้:
var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};
ใช่คุณสามารถ (ในบางกรณี) เพียงตรวจสอบเพื่อดูว่า localStorage เป็นสมาชิกของวัตถุหน้าต่าง อย่างไรก็ตามมีตัวเลือก sandboxing iframe (เหนือสิ่งอื่นใด) ที่จะทำให้เกิดข้อยกเว้นหากคุณพยายามเข้าถึงดัชนี 'localStorage' ดังนั้นเพื่อเหตุผลที่ดีที่สุดนี่เป็นวิธีที่ดีที่สุดในการตรวจสอบเพื่อดูว่า localStorage เปิดใช้งานอยู่หรือไม่ จากนั้นคุณสามารถล้าง localStorage อย่างนั้นได้
if (localStorageEnabled) localStorage.clear();
ตัวอย่างเช่นคุณสามารถล้าง localStorage หลังจากเกิดข้อผิดพลาดในเบราว์เซอร์ webkit เช่นนั้น
// clears the local storage upon error
if (localStorageEnabled)
window.onerror = localStorage.clear.bind(localStorage);
ในตัวอย่างข้างต้นคุณต้องการ.bind(window)
เพราะถ้าไม่มีlocalStorage.clear
ฟังก์ชันจะทำงานในบริบทของwindow
วัตถุแทนlocalStorage
วัตถุทำให้มันล้มเหลวอย่างเงียบ ๆ เพื่อแสดงสิ่งนี้ให้ดูตัวอย่างด้านล่าง:
window.onerror = localStorage.clear;
เหมือนกับ:
window.onerror = function(){
localStorage.clear.call(window);
}
หากคุณต้องการล้างรายการทั้งหมดที่คุณเก็บไว้ในlocalStorageแล้ว
localStorage.clear();
ใช้สิ่งนี้เพื่อล้างคีย์ที่เก็บไว้ทั้งหมด
หากคุณต้องการที่จะล้าง / ลบเพียงสำคัญโดยเฉพาะ / ค่าแล้วคุณสามารถใช้RemoveItem (กุญแจ)
localStorage.removeItem('yourKey');
localStorage.clear();
หรือ
window.localStorage.clear();
เพื่อล้างรายการเฉพาะ
window.localStorage.removeItem("item_name");
หากต้องการลบค่าเฉพาะตาม ID:
var item_detail = JSON.parse(localStorage.getItem("key_name")) || [];
$.each(item_detail, function(index, obj){
if (key_id == data('key')) {
item_detail.splice(index,1);
localStorage["key_name"] = JSON.stringify(item_detail);
return false;
}
});
เพื่อล้าง sessionStorage
sessionStorage.clear();
นี่คือรหัสง่ายๆที่จะล้างการจัดเก็บในเบราว์เซอร์ของคุณโดยใช้จาวาสคริปต์
<script type="text/javascript">
if(localStorage) { // Check if the localStorage object exists
localStorage.clear() //clears the localstorage
} else {
alert("Sorry, no local storage."); //an alert if localstorage is non-existing
}
</script>
ในการยืนยันว่า localstorage ว่างเปล่าให้ใช้รหัสนี้:
<script type="text/javascript">
// Check if the localStorage object exists
if(localStorage) {
alert("Am still here, " + localStorage.getItem("your object name")); //put the object name
} else {
alert("Sorry, i've been deleted ."); //an alert
}
</script>
ถ้ามันคืนค่า null การจัดเก็บในพื้นที่ของคุณจะถูกล้าง
รหัสนี้ที่นี่คุณให้รายการของสตริงของคีย์ที่คุณไม่ต้องการลบจากนั้นมันจะกรองเหล่านั้นจากคีย์ทั้งหมดในการจัดเก็บในท้องถิ่นแล้วลบอื่น ๆ
const allKeys = Object.keys(localStorage);
const toBeDeleted = allKeys.filter(value => {
return !this.doNotDeleteList.includes(value);
});
toBeDeleted.forEach(value => {
localStorage.removeItem(value);
});