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

TIM*_*MEX 5 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>
Run Code Online (Sandbox Code Playgroud)

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

Tre*_*ner 20

正如另一个问题所详述,这个问题的真正答案取决于浏览器.

在Firefox和Opera中,下面的页面将保留单击1if 的状态,Set x单击链接,然后按下后退按钮.但是,在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>
Run Code Online (Sandbox Code Playgroud)


Jus*_*ier 0

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

更新

在 Firefox 等浏览器中情况并非如此。请参阅特雷的回答。