有没有办法在JavaScript中获得之前的URL ?就像这样:
alert("previous url is: " + window.history.previous.href);
有类似的东西吗?还是我应该把它放在饼干里?我只需要知道,所以我可以做过渡从以前的URL到当前的URL没有锚和所有的。
有没有办法在JavaScript中获得之前的URL ?就像这样:
alert("previous url is: " + window.history.previous.href);
有类似的东西吗?还是我应该把它放在饼干里?我只需要知道,所以我可以做过渡从以前的URL到当前的URL没有锚和所有的。
当前回答
文档。referrer与实际URL在所有情况下都不相同。
我有一个应用程序,我需要建立一个2帧的框架集。一个框架是已知的,另一个是我要链接的页面。看来那份文件。Referrer是理想的,因为您不必将实际的文件名传递给框架集文档。
但是,如果您稍后更改了底部框架页面,然后使用history.back(),它不会将原始页面加载到底部框架中,而是重新加载文档。引用,结果框架集消失了,你回到原来的开始窗口。
我花了点时间才明白。在历史数组中,document。referrer不仅仅是一个URL,它显然也是一个引用窗口规范。至少,这是我目前能理解的最好的方式。
其他回答
如果你正在编写一个web应用程序或单页应用程序(SPA),其中路由发生在应用程序/浏览器中,而不是到服务器的往返,你可以执行以下操作:
window.history.pushState({ prevUrl: window.location.href }, null, "/new/path/in/your/app")
然后,在您的新路由中,您可以执行以下操作来检索之前的URL:
window.history.state.prevUrl // your previous url
如果你想在不知道url的情况下跳转到上一页,你可以使用新的History 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的浏览器上操作历史堆栈的内容
要了解更多信息,请参阅医生
文档。referrer与实际URL在所有情况下都不相同。
我有一个应用程序,我需要建立一个2帧的框架集。一个框架是已知的,另一个是我要链接的页面。看来那份文件。Referrer是理想的,因为您不必将实际的文件名传递给框架集文档。
但是,如果您稍后更改了底部框架页面,然后使用history.back(),它不会将原始页面加载到底部框架中,而是重新加载文档。引用,结果框架集消失了,你回到原来的开始窗口。
我花了点时间才明白。在历史数组中,document。referrer不仅仅是一个URL,它显然也是一个引用窗口规范。至少,这是我目前能理解的最好的方式。
我在一个SPA单页应用程序上也有同样的问题,我解决这个问题的最简单的方法是使用本地存储,如下所示:
我将需要的url存储在本地存储中
useEffect(() => {
const pathname = window.location.href; //this gives me current Url
localstorage.setItem('pageUrl',JSON.stringify(pathname))
}, []);
在接下来的屏幕(或几个屏幕后)我获取的url可以替换它如下
useEffect(() => {
const pathname = localstorage.getItem('pageUrl');
return pathname ? JSON.parse(pathname) : ''
window.location.href = pathname; //this takes prevUrl from local storage and sets it
}, []);
<script type="text/javascript">
document.write(document.referrer);
</script>
文档。referrer可以满足你的目的,但它不适用于IE9之前的ie版本。
它将工作于其他流行的浏览器,如Chrome, Mozilla, Opera, Safari等。