我第一次尝试在html页面之间进行转换。当我创建替换和href时,我一直在寻找它们之间的区别,因此我选择了第二个。我正在建立一个登出按钮。因此,当我单击它时,我需要重定向到登录页面。但是,我还需要使用户无法使用后退按钮导航回首页(从登录名)。因此,在我的home.js文件中,我写道(我正在使用Firebase):
const disconnettitiButton = document.getElementById("disconnettiti");
disconnettitiButton.addEventListener('click', () => {
firebase.auth().signOut().then(function() {
// Sign-out successful.
window.location.replace("../index.html");
}).catch(function(error) {
// An error happened.
});
});
虽然这是与按钮相对应的html(实际上不是按钮...)
<a class="nav-link" href="#" id="disconnettiti">Disconnettiti<span class="sr-only"></span></a>
问题是:window.location.replace()成功更改了页面并返回到登录表单。但是,当我单击“后退”按钮时,我也可以返回主页,在此我调用了.replace()函数。 replace方法应删除历史记录的顶部,但实际情况并非如此。有什么办法吗?非常感谢
我认为您需要提供完整的网址,而不是提供相对路径。因此,如果要从端口3000的localhost
提供页面,并且index.html
位于根目录,则应将路径指定为http://localhost/index.html
。
此外,您的脚本必须抛出错误。如果不起作用,则应首先检查浏览器控制台。
希望有帮助:)
您的逻辑中存在一个基本错误。限制区域页面只能通过有效的授权才能访问。
这些授权应在用户注销时删除。因此,即使您按下“后退”按钮,您也不再有授予权限,您将被重定向到登录页面。如果您尝试在限制区域中指向特定的网址,也会发生同样的情况。
例如,您可以使用在登录/注销时设置/取消设置的Cookie,也可以使用会话。在限制区域的每个页面上,您都需要在开始时检查cookie的存在,否则请进行重定向。
如果注销后您仍然可以看到限制区域内的内容,但是您的应用程序工作有问题(但是您没有提供代码来检查)