面试官:你在xx项目中有哪些亮点或是贡献亦或是小技巧?( 二 )


行吧 , 办法总是有的 。
首先查阅资料我们了解到:
当前页面使用的被其他页面修改时会触发事件 。
事件在同一个域下的不同页面之间触发 , 即在A页面注册了的监听处理 , 只有在跟A同域名下的B页面操作对象 , A页面才会被触发事件 。
之后通过来初始化一个对象 , 再派发该对象即可 。
通过查阅MDN[1]得知参数 。
比如监听:
function setStorage(key, val) {if(key === 'watch') {// 创建一个事件var storageEvent = document.createEvent('storageEvent')}const storage = {setItem: (itKey, itVal) => {sessionStorage.setItem(itKey, itVal)// 初始化事件storageEvent.initStorageEvent('setItem', false, false, itKey, null, itVal, null, null)// 派发对象window.dispatchEvent(storageEvent)}}return storage.setItem(key, val)}复制代码
使用方法:在A页面:
setStorage('watch', val)复制代码
在B页面即可获取:
window.addEventListener('setItem', () => {newVal = sessionStorage.getItem('watch')})复制代码
事件在同一个域下的不同页面之间触发 , 即在A页面注册了的监听处理 , 只有在跟A同域名下的B页面操作对象 , A页面才会被触发事件 。
最后
都看到这里了不点个赞吗?
欢迎大佬们提出建议与想法 。
【面试官:你在xx项目中有哪些亮点或是贡献亦或是小技巧?】关于本文