Does back/forward in the browser change javascript variables?
<script type="text/javascript>
var x = 0; //this occurs in the beginning of the page.
$("#button").onclick{
x = 1开发者_JAVA百科;
}
</script>
Let's say the variable "x" changes to 1. Then the user clicks a link. When the user clicks "back", will x be 0 or 1?
As detailed in another question, the real answer to this question is it depends on the browser.
In Firefox and Opera, the below page will preserve the state of 1
if Set x is clicked, the link is clicked, and then the back button is pressed. However, in Chrome and IE6 the page will be reloaded and x
will have the value of 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>
It will be 0
. The browser does not cache the state of Javascript variables between page loads.
Update
This is not the case in browsers such as Firefox. Please see Trey's answer.
精彩评论