问题
I'm working on a Web Application hosted in Azure. I've tried it on MS Edge (build 20.10525.0.0) and got the following problem.
I have a link with target _blank to open in a new tab a page. On the click event of this link, I store some data in the session storage. The new page is retrieving the data to display it. This work fine under Chrome, Firefox, IE 9-10-11.
Under Edge, the storage seems to work fine. Thought, the retrieving is not always working. Sometimes, the first attempt works. Sometimes, it returns null.
I've tried to use the local storage instead of session storage. I've also tried to use window.open instead to the target _blank. Both of these solutions are not working.
Anyone have ideas ?
回答1:
I had the same problem with localStorage across multiple tabs - it would only work intermittently, or not at all. My solution was to switch to window.indexedDB
(see docs on MDN) which works fine in IE10, IE11 and MS Edge (tested on Edge v20.10240).
回答2:
If window A created window B then the storage event gets trigger
try it out with this code
create a file called a.htm and add this script in
(function() {
function write(s) {
var d = document.createElement('div');
d.innerHTML = s;
document.body.appendChild(d);
}
var w = window.open('','window_b');
if (w.location.host === '') {
w.location.href = 'http://localhost/b.htm';
}
if (window.localStorage) {
setInterval(function() {
var now = (new Date()).toTimeString();
localStorage.removeItem('date');
localStorage.setItem('date', now);
write('fired on ' + now);
}, 3000);
}
else {
write('local storage not detected!');
}
})();
create a file called b.htm and add this script
(function() {
function write(s) {
var d = document.createElement('div');
d.innerHTML = s;
document.body.appendChild(d);
}
window.addEventListener('storage', function(e) {
e.newValue && write('received ' + e.newValue);
});
})();
then just browse to a.htm
回答3:
use localStorage instead of sessionStorage. it will work.
来源:https://stackoverflow.com/questions/32253411/microsoft-edge-local-session-storage-are-not-working-in-a-new-tab