javascript - 当人们点击后退按钮时,如何防止浏览器执行一些 JavaScript?

标签 javascript jquery html ajax

服务器返回一个页面,该页面有一个隐藏的输入,其中包含一些一次性 CSRF token ,用于将来的 AJAX 请求。 .onload处理程序解析这些标记并删除了 <input> .当此人导航到外部网站然后使用“后退”按钮返回到上一页时,就会出现问题。浏览器使用页面的缓存版本,其中包含 <input>带有 token ,可能已经用完了。在提出请求之前,我无法检查这一点。

有没有一种可靠的方法,将一些数据传递到 JavaScript 变量中,即使用户单击“后退”按钮进入页面,它也将保证只执行一次?

我能想到的唯一解决方案是在页面加载时异步请求这些 token ,但是当大量压缩内容被压缩时,为几个短字符串往返于服务器毫无意义无论如何都会发送给用户。

最佳答案

您可以尝试使用隐藏的表单,因为浏览器会保留表单数据,然后使用 js 嗅探表单以检查页面是否“脏”。

这个答案中有一个很好的例子:https://stackoverflow.com/a/5642600/1759514

关于javascript - 当人们点击后退按钮时,如何防止浏览器执行一些 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30688919/

相关文章:

javascript - 这个 Javascript 请求和 Python 请求有什么区别?

javascript - 为什么我的 Javascript 对话框无法工作

javascript - 如何使用jquery解析json字符串

html - 当这个缩略图与 AngularJS 一起事件时,我们如何显示彩色的事件缩略图?

javascript - 数组不显示值

Javascript - 从专家返回 undefined object 数组 - NodeJS

javascript - 如何从数组的 ForEach 循环中引用我的 TypeScript 类中的这个父方法?

javascript - 调整窗口大小或旋转移动设备上的后退图像按钮位置

javascript - 使用 jquery 或 javaScript 更改背景位置的值

html - 自定义样式遵循 HTML 表单选择字段到 Rails 代码