我在本地运行一个脚本,在其中一个函数中,它转到不同的页面。一旦这样做,我希望它返回上一页并继续在本地运行脚本。
有没有办法在不刷新页面的情况下返回上一页。我使用parent.history.back();它返回上一页但刷新页面,因此我的脚本停止运行。
TL;DR - 简短的答案是“否”
如果不“刷新”页面就无法返回。
“刷新”是一个有点模糊的术语,没有确切的技术含义......
以任何方式“返回”,无论是浏览器的后退按钮还是您.history.back()告诉浏览器加载其历史记录中的上一页。
页面是从浏览器缓存加载还是从服务器重新请求取决于浏览器,而不是由您决定。
无论如何,浏览器是否会重新解析 DOM 和/或重新渲染页面再次取决于浏览器。事实上,它确实会这么做。
其中任何一个都可以称为“刷新”。
然而,那时浏览器将开始解析并执行存在的任何脚本。在任何情况下,无论页面卸载时脚本中的位置如何,它都不会继续。
浏览器返回的页面是从服务器接收到的 HTML 文本,但脚本可能在页面加载后显着修改了 DOM。当页面通过返回重新加载时,这些脚本需要从头开始再次运行。
可以想象,编写一个浏览器,在离开页面时保存 DOM 状态和 js 执行状态,并在返回时恢复该状态,但不存在这样的浏览器。
根据您的实际目标,可以执行许多操作,例如pushState()和replaceState()、单页 Web 应用程序、XMLHttpRequest、 using<iframe>等。您可以将当前页面内容 (DOM) 替换为其他内容,而无需实际执行“前进”,并在稍后“返回”页面时恢复保存的 DOM,
但这对于 Stackoverflow 问题来说太大了。
| 归档时间: |
|
| 查看次数: |
14869 次 |
| 最近记录: |