JavaScript的;浏览器历史记录;是否有跨浏览器方式阅读上一个页面的URL(history.go(-1)),和第二最后一页(history.go(-2))?

问题描述 投票:-1回答:1

我需要动态获取和前两页的URL的过程的。试图做这样的事情,但没有运气(使用浏览器,但我需要为所有的浏览器解决方案):

console.log(window.history.entries[window.history.index - 2]);

我能顺利拿到的唯一对象是“history.length”。

这使“未定义”多次太:

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;
}
javascript browser-history
1个回答
2
投票

把这个在您的网站的所有页面..

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');

这将允许你跟踪的最后两页上你的网站用户访问。任何浏览用户做您的站点外不关你的事。 :)

© www.soinside.com 2019 - 2024. All rights reserved.