在浏览器中返回/转发是否会更改javascript变量?

时间:2010-02-24 02:53:28

标签: javascript jquery browser-history browser-state

<script type="text/javascript>
var x = 0; //this occurs in the beginning of the page.

$("#button").onclick{
x = 1;
}

</script>

假设变量“x”变为1.然后用户点击链接。当用户点击“返回”时,x是0还是1?

2 个答案:

答案 0 :(得分:20)

详见another question,此问题的真正答案是取决于浏览器

在Firefox和Opera中,如果单击 Set x ,单击链接,然后按下后退按钮,下面的页面将保留1的状态。但是,在Chrome和IE6中,我们会重新加载该页面,x的值为0

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<input type="button" id="button" value="Set x">
<input type="button" id="check-x" value="Check x">
<a href="http://www.stackoverflow.com">Click Me</a>
<script>
var x = 0;

$("#button").click(function(){
    x = 1;
});

$("#check-x").click(function(){
   alert(x); 
});
</script>

答案 1 :(得分:0)

它将是0。浏览器不会在页面加载之间缓存Javascript变量的状态。

更新

在Firefox等浏览器中并非如此。请看Trey的答案。