我目前正在使用 React 和 GatsbyJS 构建网站并尝试有条件地添加导航 window.history.back(-1);
如果上一页是同一域的一部分。
一个例子是
navigateBack = () => {
if (window !== undefined) {
window.history.back(-1);
}
};
请注意,if (window !== undefined)
允许在没有服务器端渲染的情况下使用 window
。
如何在运行此功能之前检查上一页。
例如,用户是从外部链接导航的,我想使用 navigate('/stories/')
,否则如果用户来自内部页面,即 '/stories/2/'
我希望他们使用 window.history.back(-1);
最佳答案
我必须通过检查以确保有一个历史可以访问,然后通过验证当前主机可以在引荐来源网址中找到来解决这个问题。如果找到它们,那么我知道它们来 self 的站点,所以我返回;否则,我会将它们导航到其他地方。
if(window.history.length > 1 &&
document.referrer.indexOf(window.location.host) !== -1) {
window.history.back();
}
else {
<do something else>
}
关于javascript - 如果上一页不是来自同一个域,则有条件地使用 window.history.back(-1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55452880/