使用Javascript history.go()获取真实的“previous”;页面
Use Javascript history.go() to the real "previous" page
假设我们有这样的历史记录:
- Home
- Page 1
- Page 2
JS history.go(-1)
可以很好地转到第1页…但是如果我们当前的历史是
- Home
- Page 1
- Page 2
- Page 2 (2nd time)
- Page 2 (3rd time)
- ...
- Page 2 (nth time)
如何使用JavaScript
历史对象返回第1页?
您可以创建一个函数,对对象的属性执行a +1操作,然后您可以使用该值返回正确的步数
var History = {
steps : 0
}
somenewpagelink.onclick = function() {
History.steps = (parseInt(History.steps)+1);
}
如果你想回到第1页,简单地创建另一个函数:
function goBack() {
History.go(-History.steps);
History.steps = 0;
}
当你返回的步骤将被重置,所以当你继续浏览你的网站,它不会回到许多步骤。
我确实认为使用jQuery是一个很好的解决方案,但不是对于可以很容易地用原始Javascript解决的小事情,它只会减慢你的网站,如果使用jQuery的一个功能。
此外,你可以在那里添加一个开关,如果你点击返回从第3页返回到第1页,你也可以使它反向。
function goBack(r) {
if (r)
history.go(History.steps);
else
history.go(-History.steps);
History.steps = 0;
}
当然,这个函数需要进行必要的调整,以达到预期的效果,并完全完美,但对于简单的实现,您可以这样做。
此方法的签名是来自(w3school)的history.go(number|URL)
。所以你可以用字符串参数代替数字,如果(以某种方式)你知道哪个是page2的url,你可以使用它。
history.go("http://localhost/page2");
当页面加载时,记录现在的历史。js对象的长度。当您想回到page1时,history.go(record-history.length-1)。我测试过它工作得很好。但我不知道是否会有不安全的东西。
相关文章:
- 如何使用jQuery自动打开页面上的所有链接
- 使用agility.js进行页面布局和合成
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript执行暂时挂起页面
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 在chrome.tabs.onCreated之后加载HTML页面
- 如何在vs2002中调试html页面
- 单击F5时如何停止页面加载
- 跟踪在页面加载时应用内联样式的JavaScript
- 使用angular重定向到html页面
- 我应该如何从xml文件构建一个javascript页面
- HTML5页面底部棒
- 如何通过php页面将数据库值检索到jquery自动完成框中
- Html页面上的多个Base64图像和平滑加载
- 无法将数据从firebase获取到我的html页面
- 如何在MS Edge上使用本机javascript从具有next和previous的页面中搜索文本
- 阻止CKEDITOR将Previous Element类复制到页面上的每个新元素中
- 使用Javascript history.go()获取真实的“previous”;页面