0

重複の可能性:
別のページ(同じjsファイルも使用)に移動すると、Javascriptグローバル変数が保持されない

スクリプトがあります

<script>

var pn=0;

function set()
{
pn=parseInt(pn)+1;
}
</script>

の最初の実行後、は1setpnなります。

ページがリロードされた後、pnその値を保持1し、次回の実行時setににインクリメントされ2ます。

ページのリロード間でグローバル変数を保持するにはどうすればよいですか?

4

5 に答える 5

3

jquery cookieを介して pn の値を Cookie に保存できます。クッキーを設定:

$.cookie("pn", pn);

Cookie から値を取得します。

$.cookie("pn");
于 2013-01-17T09:21:27.907 に答える
2

要するに、あなたはできません。ページのリロード時にクライアント側の変数を永続化する方法はありません。

どちらかを使用することをお勧めします

jQuery cookieプラグイン(cookies)

または、ブラウザがHTML5をサポートしている場合:

HTML5 Webストレージ(ローカル/セッションストレージ)

于 2013-01-17T09:20:35.560 に答える
1

Cookie を使用する必要があります。これを実現する方法の例を次に示します。

var pn = 0;

function increment() {
  pn = parseInt(pn, 10) + 1;
  setCookie('pn', pn, 200);
  console.log(pn);
}

function setCookie(c_name,value,exdays) {
  var exdate=new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name) {
  var i,x,y,ARRcookies=document.cookie.split(";");
  for (i=0;i<ARRcookies.length;i++) {
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name) {
      return unescape(y);
    }
  }
}

(function () {
  pn = getCookie('pn') || 0;
}());

以下に例を示します: http://jsbin.com/ucitul/3

于 2013-01-17T09:21:56.167 に答える
0

値をCookie、クエリ文字列、またはハッシュフラグメントに保存し、ページの読み込み時に値を取得する必要があります。

于 2013-01-17T09:20:57.833 に答える
0

jquerycookieプラグインを使用することをお勧めします。それはかなり単純で、あなたの問題を解決します

于 2013-01-17T09:21:02.857 に答える