![](/img/trans.png)
[英]How can I add content to a page after opening the link in a new window/tab?
[英]How can I determine if the page is loaded in a new window or tab?
我有一个画廊网站,上面有绘画作品,它们的overflow-x: scroll
。
当用户单击绘画时,当前滚动位置将存储在localStorage
并显示详细信息页面。 当用户单击“后退”按钮时,将在加载页面时设置滚动位置。
我希望在将页面加载到新的选项卡或窗口中时取消设置此滚动位置。 我怎么知道这是否发生了?
取消重新加载页面设置已经可以进行了。 但是,在新窗口中打开网站显然不算是重新加载。
我已经尝试阅读sessionStorage
,但这并不能解决问题。
if (performance.navigation.type == 1 || sessionStorage.isNewSession) {
localStorage.setItem("scrollPositionHome", 0);
}
performance.navigation.type
看到这是页面重新加载, sessionStorage.isNewSession
并没有做什么。
您可以修改自己的代码以打开链接!
$('a').on('click', function(e) {
// This will prevent the default behaviour
e.PreventDefault();
// On Control click it's opened in a new window
if (e.ctrlKey || e.metaKey){
// Open in new window, you can already reset your localstorage here.
localStorage.setItem("scrollPositionHome", 0);
window.open(e.target.href);
} else {
// Just a simple redirect
window.location.href = e.target.href;
}
});
注意:这未经测试! 如果需要,我会纠正的!
您似乎混淆了sessionStorage
和localStorage
。 您可以在此链接后找到一些小的说明。
TL; DR: sessionStorage
是每个选项卡, localStorage
将在多个会话中持续存在。 您可以只清空localStorage
或首先使用sessionStorage
。
如果您可以提供一些代码,我们可以为您提供更详尽的解释/帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.