浏览器中的后退/前进会改变 javascript 变量吗?

发布于 2024-08-22 16:27:55 字数 217 浏览 8 评论 0原文

<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?

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

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

</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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少钕鈤記 2024-08-29 16:27:55

正如另一个问题中详细介绍的,这个问题的真正答案这取决于浏览器

在 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>

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>
笑梦风尘 2024-08-29 16:27:55

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

更新

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文