鍍金池/ 問答/HTML5  網(wǎng)絡(luò)安全  HTML/ 在“我的京東”頁面中使用監(jiān)聽 storage 中沒有結(jié)果

在“我的京東”頁面中使用監(jiān)聽 storage 中沒有結(jié)果

問題
本意是想要寫一個(gè)自用的訂單評價(jià)腳本,想要監(jiān)聽 Storage,結(jié)果發(fā)現(xiàn)壓根沒有任何返回的內(nèi)容。
懷疑是京東重寫了 Storage 的監(jiān)聽事件,監(jiān)聽 Message 是沒問題的。
監(jiān)聽 Storage 沒有結(jié)果的這個(gè)問題有什么辦法解決嗎?
能否自己重寫監(jiān)聽事件,或者寫一個(gè)不一樣的監(jiān)聽事件?

PS: 本人已知監(jiān)聽的頁面中進(jìn)行 localStorage 的修改是不會有效果!

相關(guān)環(huán)境說明
執(zhí)行腳本的地址:https://club.jd.com/myJdcomme...

修改 localStorage 是從訂單頁面進(jìn)行,測試可以從下面兩個(gè)地址中進(jìn)行測試。
0 監(jiān)聽,1 修改
https://club.jd.com/myJdcomme...
https://club.jd.com/myJdcomme...

案例相關(guān)代碼

if(/myJdcomment.action/i.test(path)){
  var $btn=$('.btn-def');  //評價(jià)按鈕
  //注冊監(jiān)聽 Storage 事件
  console.log('注冊監(jiān)聽 Storage 事件');
  window.addEventListener('storage', function(e){
    console.log('this: ', e);
  });
    localStorage['myJDorderVocher']=0;
}
if(/orderVoucher.action/i.test(path)) {
  localStorage.setItem('myJDorderVocher','1');
}
回答
編輯回答
安若晴

本來就沒有storage事件
https://html5demos.com/storag...
似乎必須在別的同源頁面窗口修改localStorage才會觸發(fā)storage event


我監(jiān)聽storage并沒有問題
圖片描述

還有就是修改要產(chǎn)生變化才會觸發(fā)storage event,不變的修改不會觸發(fā)

2017年1月24日 14:22