在我们的.Net Framework应用程序中,母版页中有一个RadWindow,用于在登录后显示通知。如果 RadWindow 打开有任何新通知。当它关闭时,它将不会在该会话中再次显示。因此
DestroyOnClose
属性设置为 true
。但是,当转到另一个页面,然后通过单击浏览器后退按钮返回到上一页时,radwindow 会再次打开。如何预防?
我曾尝试在
DOMContentLoad
时隐藏它,但一开始它应该是可见的。还尝试隐藏在 popstate
事件中,但回来时不会触发。
解决方案1:您的
DestroyOnClose
值在每个页面上都会发生变化,您需要将该值临时保存在会话或任何您想要的状态管理上,然后在文档附加到窗口时检查它,这可能会帮助您[链接][ 3]
window.addEventListener('beforeunload', () => {
console.log('User clicked back button');
});
解决方案2:当片段标识符(URL中“#”后面的部分)发生变化或者URL本身发生变化时,会触发
hashchange
事件。虽然与后退按钮没有直接关系,但此事件对于跟踪导航期间可能发生的 URL 更改非常有用。
window.addEventListener('hashchange', event => {
console.log('Fragment identifier or URL changed');
});
希望该解决方案对您有所帮助