如何在JavaScript中获得以前的URL?

有没有什么办法在JavaScript中获取以前的URL? 像这样的东西:

alert("previous url is: " + window.history.previous.href); 

有没有这样的事情? 或者我应该只是把它存储在一个cookie? 我只需要知道,所以我可以从前一个URL转换到当前的URL没有锚和所有的。

 document.referrer 

在很多情况下,如果用户通过点击链接到达当前页面(与在地址栏中直接input,或者我相信在某些情况下通过提交表单?),您将获得用户访问的最后一页的url。 由DOM Level 2指定。 更多在这里。

由于安全和隐私的原因, window.history允许导航,但不能访问会话中的URL。 如果更详细的url历史logging可用,则您访问的每个网站都可以看到您曾经去过的所有其他网站。

如果您正在处理状态,而不是使用正常的会话pipe理技术:cookie数据,URL参数或服务器端会话信息,则可能不那么脆弱,而且更有用。

 document.referrer 

这是一个标准的,它会给你的url。

document.referrer与所有情况下的实际URL都不相同。

我有一个应用程序,我需要build立一个框架2帧。 一个帧是已知的,另一个是我连接的页面。 这似乎是document.referrer将是理想的,因为您不必将实际的文件名称传递到框架集文档。

但是,如果稍后更改底部框架页面,然后使用history.back() ,则不会将原始页面加载到底部框架,而是重新加载document.referrer ,因此框架集已经消失,您将返回到原始的开始窗口。

花了一点时间来理解这一点。 所以在历史数组中, document.referrer不仅是一个URL,它显然也是引用者窗口的规范。 至less,这是我现在可以理解的最好方式。

如果你想在不知道url的情况下转到上一页,可以使用新的历史api。

 history.back(); //Go to the previous page history.forward(); //Go to the next page in the stack history.go(index); //Where index could be 1, -1, 56, etc. 

但是,您不能在不支持HTML5 History API的浏览器上操作历史堆栈的内容

欲了解更多信息,请参阅文档

document.referrer会给出上一页的URL,但它可以用于所有浏览器,如Opera,Mozilla Firefox,Safari等,但在Internet Explorer中不起作用。 在IE中使用document.referrer时,会导致null。