繁体   English   中英

Javascript; 浏览器历史记录; 是否有跨浏览器的方式来读取上一页url(history.go(-1))和倒数第二页(history.go(-2))?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM