[英]Javascript; Browser history; Is there cross-browser way to read previous page url( history.go(-1) ), and second last page ( history.go(-2) )?
我需要动态获取和处理前两个页面的网址。 试图做这样的事情,但是没有运气(使用Chrome,但是我需要所有浏览器的解决方案):
console.log(window.history.entries[window.history.index - 2]);
我唯一可以成功获得的对象是“ history.lenght”。
这也多次给出“未定义”:
for (var i = window.history.length; i >= 0; i--) {
console.log(window.history[i]);
}
更新:我正在添加[返回]按钮,并且服务器上有弹出窗口,这破坏了我的代码。 如果出现弹出窗口,我将叫history.go(-2)。 我注意到它始终出现在Chrome和Opera中,并创建了解决方法。 但这是一个糟糕的解决方案,我不确定它是否涵盖所有情况,这就是为什么我需要比较以前的网址
if (navigator.userAgent.search("Chrome") > -1 || navigator.userAgent.search("OPR") > -1) {
// insert conditional Chrome code here
console.log("Go Back button: Chrome or Opera detected, go two pages back.");
history.go(-2);
return false;
} else {
console.log("Go Back button: Browser is not Chrome, go one page back.");
history.go(-1);
return false;
}
将其放在您网站的所有页面上。
localStorage.setItem('2PagesAgo', localStorage.getItem('lastPage'));
localStorage.setItem('lastPage', localStorage.getItem('thisPage'));
localStorage.setItem('thisPage', location.href);
然后获取最后一页和上一页即可。
var lastPage = localStorage.getItem('lastPage');
var 2PagesAgo = localStorage.getItem('2PagesAgo');
这将使您能够跟踪用户访问您网站上的最后2页。 用户在您网站之外进行的任何浏览都与您无关。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.