【发布时间】:2019-04-29 02:55:18
【问题描述】:
我有以下简短的代码来更容易地演示我的问题:
<script>
function change() {
document.getElementById('change').innerHTML = "Done!";
}
</script>
<div id="change" onclick="change();">Change me!</div>
假设文件名是test.html。
单击Change me! 时,字符串将变为Done!。
Safari、Firefox:单击浏览器后退按钮和浏览器前进按钮返回我的test.html 时,它显示Done!。这就是我所期望的!
对其他浏览器(Chrome、Vivaldi、Min、Opera)执行相同操作,我得到的是 Change me! 而不是 Done!。
Safari 和 Firefox 似乎保留了 Javascript 更改,而其他浏览器在使用后退和前进按钮时加载页面而没有 Javascript 更改。
有没有办法让其他浏览器达到与 Safari 和 Firefox 相同的行为?
【问题讨论】:
-
为什么要持久化更改,如果您尝试管理页面或应用程序的状态,请尝试一些不同且强大的方法
-
类似于这个问题 - stackoverflow.com/questions/31837195/…
-
试着解释为什么你的代码需要这个特性。也许您需要一个单页应用程序?我们不知道,请尝试分享您的需求
-
@AmbrishPathak 我有一个 iOS 应用程序,它使用 WebView 来显示内容。还有一个按钮可以将实际页面添加到收藏夹。单击此按钮时,它会更改为
Is in your favorites。当用户返回并再次转发到此页面时,他会认为它不在他的收藏夹中,因为它现在说的是Is NOT in your favorites。 -
您可以查看使用浏览器的
Window.sessionStorage或Window.localStorage来存储和检索使用后退按钮/前进按钮情况的状态
标签: javascript html dom browser back-button