有什么方法可以检测当前页面是否来自后退按钮?
只有当当前页面来自后退按钮时,我才想从 cookie 加载数据。
最佳答案
注意:据报道,这在最新版本的 Chrome 中不再有效。
当用户返回页面时,所有可见的表单数据都会被保留,同时所有 JavaScript 变量都会被重置。我说“可见的”表单数据,因为隐藏字段似乎没有被保留,但不可见的输入却保留了下来。
您可以利用它来检测页面是初始加载,还是之前已经加载过(例如通过单击后退按钮)。
创建一个值为“0”的不可见输入字段(不是类型“hidden”),并在 DOM 就绪加载程序中检查该值是否已设置为“1”;如果您知道页面已经加载,例如通过后退按钮;如果它仍然是“0”,那么页面最初是第一次加载,将值设置为“1”。
注意:它的工作方式有点微妙,可能不适用于所有浏览器;我在构建它时考虑到了 Chrome。
- 需要加载DOM;并非所有现成的功能都有效。唯一的那个 下面是,JQuery 准备好了;然而 (function() { }) 在我的例子中没有。
- 输入不能是类型="hidden"。设置样式 =“显示:无;” 而不是在输入上。
.
<input id="backbuttonstate" type="text" value="0" style="display:none;" />
<script>
document.addEventListener('DOMContentLoaded', function () {
var ibackbutton = document.getElementById("backbuttonstate");
if (ibackbutton.value == "0") {
// Page has been loaded for the first time - Set marker
ibackbutton.value = "1";
alert('First time load');
} else {
// Back button has been fired.. Do Something different..
alert('Previously loaded - Returned from Back button');
}
}, false);
</script>
关于javascript - 检测页面是否从后退按钮加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37838430/