首页 > Opera在点击回退按钮后,原来页面的js都不执行了吗?

Opera在点击回退按钮后,原来页面的js都不执行了吗?

一直没有关注这个浏览器,直到最近有用户给我报bug。其具体表现就是Opera的缓存好像非常彻底,当用户点击链接离开某个页面后,如果再按回退按钮,所有应该动态载入的内容都没有动态载入,而是保存着离开之前的状态,因此我写了个测试代码

<html>
<head>
<meta charset="UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
</head>
<body>
<a href="http://.com/">进入其它网页</a>
<div id="result"></div>
<script>
$(document).ready(function () {
    $('#result').html((new Date).getTime());
});
</script>
</body>
</html>

测试发现,不论隔多长时间,点击返回后页面上还是显示上次的数值,没有任何改变。我想排除jquery的问题,因此把代码改进成下面这样

<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<a href="http://.com/">进入其它网页</a>
<div id="result"></div>
<script>
alert((new Date).getTime());
</script>
</body>
</html>

结果第一次页面弹出了对话框显示了时间,但是从其它页面回退以后,居然就没有任何对话框弹出了!!我测试了其它浏览器,Chrome,Safari,Firefox,都没有这个问题。这种缓存方式也太奇葩了吧,我要执行js怎么办?有人知道让Opera强制执行的技巧么?


history.navigationMode = "compatible";
评论内容补充

Scripts can set the history.navigationMode property to one of these values: 'automatic', 'compatible', or 'fast'.
http://www.opera.com/support/kb/view/...

【热门文章】
【热门文章】