【发布时间】:2021-03-15 13:46:49
【问题描述】:
我有一行代码:
location.href = 'payments/basic.php';
它工作正常,但用户只需按 Esc 键即可取消操作。我尝试使用事件侦听器来防止按下 Esc 键,但它仅在用户位于初始页面时才有效。一旦他们被重定向,它就会停止工作,他们可以快速按 Esc 键或浏览器地址栏旁边的大 X 来取消重定向。
有没有办法完全防止这种情况发生?
编辑: 我想这样做的原因是登录后,它们会自动发送到索引页面。我的数据库中有一个标志,用于检查用户是否已付款。然后在索引页面上,我有一个小脚本查询数据库以检查标志是真还是假。如果它是假的,他们会立即被通知他们正在被重定向以进行付款。如果在此重定向点,他们取消,他们将能够在不付款的情况下留在索引页面上。
【问题讨论】:
-
您为什么想要/需要阻止这种情况?是否要导航到您的页面取决于您的用户。这是他们的浏览器、他们的设备、他们的互联网连接。仅仅因为您编写了一些代码来自动化导航并不会剥夺他们选择计算机将要做什么的权利。您想在您的应用程序中解决什么实际问题,您认为这是由用户取消此导航引起的?
-
你不能,这是一个浏览器级别的事件,和刷新一样,你不能做任何事情。
-
首先,您为什么要阻止这种情况?我的猜测是,有些东西你不希望他们看到......如果是这样的话,也许可以解决这个问题,而不是试图阻止页面取消
-
If at this point of redirection, they cancel, they will be able to remain on the Index page without payment...然后确保您有一些代码,在他们延迟付款足够长的时间后,确保他们在付款之前无法在您的网站上做任何其他有用的事情。这应该是足够的动力。你试图在这里解决错误的问题。您还可以做一些服务器端的诡计,从服务器端简单地将 basic.php 的内容包含在 index.php 中(而不是常规内容),因此没有机会 not 接受该内容. -
撇开原因不说,我认为正确的答案是“加载速度更快!”如果用户有时间按 Esc,则说明您的页面加载速度不够快。
标签: javascript php html redirect