gpt4 book ai didi

javascript - 单击浏览器的后退按钮后,Opera 浏览器不会在页面上触发 JS 或服务器端代码 (JSP)

转载 作者:行者123 更新时间:2023-11-29 10:21:49 25 4
gpt4 key购买 nike

我在其他流行的浏览器中没有这个问题。在一个 JSP 页面(我们称它为 Page1.jsp)中,我单击一个转到不同页面的表单。当我单击 Opera 的后退按钮时,它返回到 Page1.jsp,但没有重新触发 JavaScript 或 JSP 代码。例如,

<!-- Inside header tag -->
<script language="JavaScript>
alert("Does this work in Opera?");
</script>

一个简单的警报语句不会触发。服务器端代码也是如此。但是,其他流行的桌面浏览器没有问题。

我该如何解决这个问题?

感谢您的帮助。

更新

我应该声明——对此我深表歉意——Page1.jsp 包含一个框架/一个 iframe,这是提交表单所在的位置。当用户提交表单时,它会在 frame/iframe 中加载一个新页面。此时,当用户单击浏览器的后退按钮时,我看到 Page1.jsp 已缓存,但框架/iframe 重新加载。这发生在除 Opera 之外的所有流行浏览器中。

最佳答案

实际上,大多数浏览器的行为都是这样的,将浏览器返回到您离开它时的状态而不是“从头开始”重新加载访问过的页面。这通常是一件好事,可以加快导航速度。

“保存状态”的浏览器在卸载时执行此操作,要覆盖它,您可以用您自己的一个替换卸载处理程序-

<script>
alert('loaded');

onunload=function(){ return true; }
</script>

用户可以在其浏览器上设置某种自动保存功能以记住两次访问之间的表单状态 - 为此,您可能需要在卸载处理程序中手动将表单字段设置为默认值。

关于javascript - 单击浏览器的后退按钮后,Opera 浏览器不会在页面上触发 JS 或服务器端代码 (JSP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com