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

标签 javascript jsp browser opera back-button

我在其他流行的浏览器中没有这个问题。在一个 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/

相关文章:

java - 我们如何在自定义标签中使用现有的标签库功能?

javascript - 如何确定旧版浏览器支持哪些技术和框架?

html - 工作 CSS 定位不依赖于屏幕尺寸

php - 如何将数据从javascript作为多维数组发送到PHP

javascript - 如何从数组中保存在某个位置的 JSON 行访问属性?

javascript - 定义参数 Date.UTC 时结果 NaN

java - 转换为 JSTL(特别是调用方法)

javascript - FB.XFBML.parse() 不刷新 Facebook 评论

java - 如何避免重复并对存储在 LinkedHashMap 中的列表进行计数

javascript - 自动填充输入字段的最佳方法是什么?