JavaScript storage 事件
storage 事件在對localStorage與sessionStorage進行資料進行增刪改操作時觸發。
此事件對於兩種本地儲存方式都有效,下面僅以localStorage做一下介紹。
關於事件處理函式註冊,可以參閱如何註冊事件處理函式一章節。
關於上述兩種資料本地儲存方案概述參閱如下兩篇文章:
(1).localStorage 用法一章節。
(2).sessionStorage 用法一章節。
下面通過程式碼例項對此事件進行一下詳細介紹。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> div{ width:200px; height:50px; color:red; margin:0px auto; } </style> <script> localStorage.setItem("name","螞蟻部落"); localStorage.setItem("address","青島市南區"); localStorage.setItem("url","www.softwhy.com"); </script> </head> <body> <div>在谷歌開發者工具檢視效果</div> </body> </html>
上述程式碼會在localStorage中新增三條資料,谷歌開發者工具截圖如下:
下面為storage 事件註冊事件處理函式監聽對localStorage的操作。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> div{ width:200px; height:50px; color:red; margin:0px auto; } </style> <script> window.onload = () =>{ let obt=document.getElementById("bt"); let odiv=document.getElementById("ant"); // storage 事件處理函式 addEventListener('storage',function(e){ odiv.innerHTML="螞蟻部落"; },false) // click 事件處理函式 obt.addEventListener('click',function(e){ localStorage.setItem("age",5); },false) } </script> </head> <body> <div id="ant"></div> <input type="button" value="檢視效果" id="bt"/> </body> </html>
預期效果是,點選按鈕新增一條資料項,觸發事件,將相應字串寫入div。
但是程式碼並未達到預期目的,分析如下:
(1).點選按鈕通過setItem()方法新增一條資料,於是觸發storage 事件。
(2).但是實際執行效果卻是,事件處理函式並未執行。
(3).因為在A頁面對本地儲存的資料操作事件,需要在同源的其他頁面監聽。
此事件的事件物件具有如下幾個屬性:
事件物件屬性:
(1).key:字串型別,被修改、刪除或者新增的鍵名。
(2).oldValue:任意型別,被重寫或者新增之前的value值。
(3).newValue:任意型別,被重寫或者修改的新值。
(4).url/uri:字串型別,觸發事件的頁面地址。
非常的簡單,本文不就不再通過程式碼例項演示,大家可以自行測試。
相關文章
- storage事件中的坑,storage.setItem()無法觸發storage事件事件
- 【HTML5】Web Storage 事件HTMLWeb事件
- h5 storage事件監聽H5事件
- 移動Web——localStorage,sessionStorage,Storage事件監聽WebSession事件
- JavaScript事件JavaScript事件
- JavaScript 事件JavaScript事件
- javaScript事件(一)事件流JavaScript事件
- javaScript事件(三)事件物件JavaScript事件物件
- JavaScript dragstart 事件JavaScript事件
- JavaScript drag 事件JavaScript事件
- JavaScript dragend 事件JavaScript事件
- JavaScript dragenter 事件JavaScript事件
- JavaScript dragover 事件JavaScriptGo事件
- JavaScript dragleave 事件JavaScript事件
- JavaScript drop 事件JavaScript事件
- JavaScript mouseout 事件JavaScript事件
- JavaScript事件模型JavaScript事件模型
- JavaScript mouseenter 事件JavaScript事件
- JavaScript animationIteration 事件JavaScript事件
- JavaScript animationStart 事件JavaScript事件
- JavaScript dblclick 事件JavaScript事件
- JavaScript mousemove 事件JavaScript事件
- JavaScript input 事件JavaScript事件
- JavaScript hashchange 事件JavaScript事件
- JavaScript reset 事件JavaScript事件
- JavaScript resize 事件JavaScript事件
- JavaScript mousedown 事件JavaScript事件
- JavaScript focus 事件JavaScript事件
- JavaScript blur 事件JavaScript事件
- JavaScript mouseup 事件JavaScript事件
- JavaScript mouseover 事件JavaScript事件
- JavaScript 事件冒泡JavaScript事件
- JavaScript submit 事件JavaScriptMIT事件
- JavaScript change 事件JavaScript事件
- JavaScript animationEnd 事件JavaScript事件
- JavaScript transitionEnd 事件JavaScript事件
- JavaScript click 事件JavaScript事件
- JavaScript abort事件JavaScript事件