回到上一页,不使用jquery而不是angularjs刷新

时间:2016-09-23 21:24:10

标签: javascript jquery

我在本地运行脚本,在其中一个函数中,它会转到不同的页面。一旦它这样做,我希望它回到上一页并继续在本地运行脚本。

有没有办法在不刷新页面的情况下返回上一页。 我使用parent.history.back();这可以回到上一页,但刷新页面,以便我的脚本停止运行。

2 个答案:

答案 0 :(得分:2)

有没有办法在不刷新页面的情况下返回上一页?

TL; DR - 简短回答是“否”
 没有“刷新”页面就无法返回。

“刷新”是一个有点模糊的术语,没有确切的技术含义......

无论是浏览器的后退按钮,还是.history.back()告诉浏览器加载它在历史记录中保存的上一页,无论以任何方式“返回”。

页面是从浏览器缓存加载还是从服务器重新请求,取决于浏览器,而不是由您决定。

在任何情况下,浏览器是否会重新解析DOM和/或重新呈现页面。实际上,它 。。

其中任何一个都可称为“刷新”。

然而,那时,浏览器将开始解析并执行任何存在的脚本。

浏览器返回的页面是从服务器收到的HTML文本,但是在加载页面后脚本可能会显着修改DOM。这些脚本需要从一开始就重新运行,当重新加载页面时返回。

可以想象,编写一个浏览器可以在您离开页面时保存DOM状态和js执行状态,并在您返回时恢复该状态,但不存在此类浏览器。

根据您的实际目标,可以完成许多事情,例如pushState() and replaceState(),单页网络应用程序,XMLHttpRequest,使用{ {1}}等等,您可以将当前页面内容(DOM)替换为其他内容而不实际“前进”,并在以后“返回”页面时恢复已保存的DOM, 但对于Stackoverflow问题来说,这个问题太大了。

答案 1 :(得分:-2)

我不是100%关注你的问题,但是从我的笔记中我可以提供给你:

// To some url
window.location.href = 'some/new/url';
// To some url without it effecting browser back history:
window.location.replace('some/new/url');