【发布时间】:2020-05-02 06:01:21
【问题描述】:
我需要以某种方式检测用户是否按下了浏览器的后退按钮并使用 jquery 重新加载页面并刷新(重新加载内容和 CSS)。
如何通过 jquery 检测这种行为?
因为现在如果我在浏览器中使用后退按钮,某些元素不会重新加载。但如果我使用网站中的链接,一切都会刷新并正确显示。
重要!
有些人可能误解了我想要的东西。我不想刷新当前页面。我想刷新按下后退按钮后加载的页面。这是我更详细的意思:
- 用户正在访问page1。
- 在第 1 页上 - 他单击指向第 2 页的链接。
- 他被重定向到第2页
- 现在(重要的部分!)他点击浏览器中的后退按钮,因为他想返回第 1 页
- 他又回到了第 1 页 - 现在第 1 页正在重新加载,并且出现类似“你回来了!”这样的警报。
【问题讨论】:
-
与其破解正常的用户行为,为什么不尝试理解为什么您的代码在页面加载时无法正常工作,而您需要重新加载页面?
-
@LelioFaieta 我更改课程以显示更改。如果用户单击某些内容,则数据库中的值会通过 ajax 发生变化。当 ajax 完成时,css 类 cahnge 例如从
on到off。没关系,它保存在数据库中,用户可以正确看到所有内容。现在他点击了其他链接。例如关于我们的页面,对吧?现在,他在关于我们的页面上。 Be 决定返回上一页并单击浏览器中的后退按钮。当他回来时,在他触发 ajax(开/关类)之前,当浏览器显示页面时,他会看到页面上的变化(可能是一些浏览器缓存) -
您在使用 get 还是 post 进行 Ajax 调用?
-
@LelioFaieta part2 .. 我也使用数据属性,它没有效果。如果重新加载页面,一切都会很棒。如果我在该页面上按 F5,则会显示他通过 ajax 更改的值。我认为这是一些与浏览器相关的问题,当 css/html 部分没有完全重新加载时。仅在按 f5 后才会重新加载
-
@LelioFaieta
$.ajax({ url: url, method: 'post', processData: false, contentType: false, cache: false, dataType: 'json', data: formData, })你认为这可能是通过ajax 实现的吗?如果是这样就太好了。
标签: javascript jquery browser browser-cache page-refresh