Меняет ли назад / вперед в браузере переменные javascript? - PullRequest
5 голосов
/ 24 февраля 2010
<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 ]

20 голосов
/ 15 марта 2011

Как подробно описано в другом вопросе , реальный ответ на этот вопрос , это зависит от браузера .

В Firefox и Opera на странице ниже будет сохранено состояние 1, если щелкнуть 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>
0 голосов
/ 24 февраля 2010

Это будет 0. Браузер не кэширует состояние переменных Javascript между загрузками страниц.

Обновление

Это не относится к браузерам, таким как Firefox. Пожалуйста, посмотрите ответ Трея.

...