在Internet Explorer的新选项卡中打开链接时,SessionStorage不是空的
SessionStorage is not empty when link opened in new tab in Internet Explorer
我需要在每个打开的浏览器选项卡上有一些唯一的id(在javascript对象中)。Id必须通过请求保存,我决定为它使用sessionStorage。
当我在浏览器中打开新页面时,效果很好。
但是当我用鼠标右键点击一个链接,并在IE 11中选择"在新标签中打开链接"时,sessionStorage不是空的。所以我对新id的期望落空了。
Chrome以另一种方式工作,sessionStorage为空。
有谁知道如何解决这个问题的IE?
我知道这是一个古老的问题,但今天我自己也在努力解决这个问题。我正在打开一个带有target="_blank"
链接的新选项卡,期望sessionStorage为空。
注意:所有这些都是未经测试的代码,但您应该得到jist。我遇到这个问题的浏览器是Firefox 44.0.2。
我的代码是这样写的:
问题代码:
$(window).ready(function(){
//Get saved session data
var persistedObject = null;
try{
persistedObject = JSON.parse(sessionStorage.getItem('tabData'));
}catch(e){}
});
function updateSessionStorage(){
var objectToPersist = {};
//Get some data to persist
objectToPersist.value1 = "some data";
//Save the data in the session storage
sessionStorage.setItem('tabData', JSON.stringify(objectToPersist));
}
从先前关闭的选项卡中获取数据。
我解决了这个问题,把我的代码改成这样:工作代码:
$(window).ready(function(){
//Get saved session data
var persistedObject = null;
try{
persistedObject = JSON.parse(window.name);
}catch(e){}
});
function updateSessionStorage(){
var objectToPersist = {};
//Get some data to persist
objectToPersist.value1 = "some data";
//Save the data in the session storage
window.name = JSON.stringify(objectToPersist);
}
效果很好。窗口名称一直持续到您关闭选项卡/窗口,这正是我所期望的sessionStorage要做的。如果在链接处理端没有指定名称,则新页面总是加载window.name = ""
。
您可能会忽略的是,您不能直接使用像我的sessionStorage.setItem('tabData', 'some data')
这样的名称,但您可以通过以下操作轻松避免这种情况:
建议:
function updateSessionStorage(){
var objectToPersist = {};
try{
objectToPersist = JSON.parse(window.name);
}catch(e){}
if(objectToPersist[tabData] == undefined){
objectToPersist.tabData = {};
}
//Get some data to persist
objectToPersist.tabData.value1 = "some data";
//Save the data in the session storage
window.name = JSON.stringify(objectToPersist);
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 如何在Angular中的表的所有单元格中添加链接
- 通过链接重定向不;我不在jstree中工作
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 完全可链接的li元素