0

iFrameを使用する HTML Web ページをデスクトップに保存しています。

iFrameのsrcは、次のようにインターネット上のページを指しています。

www.example.com/results.html?id=1&year=1900&month=1&x=1&y=2

Web ページに、クリックすると月と年の値を変更するボタンがあります。

したがって、月が 13 になると、1 に戻り、年を 1 だけ先に設定します。それ以外の場合は、13 に達するまで増分します。

    if (month <= 12) {
        month++;
    }
    if (month == 13) {
        month = 1;
        year++;
    }

うまくいきましたが、ページを更新すると、変数はデフォルトで設定されていたものに戻り、1900 と 1 になります。

  • $.cookie.set('month', month)
  • document.cookie = NameOfCookie + "=" + month;

次の目的で Cookie が必要です。

  1. nextPage() 関数を使用して iFrame の src を変更します

    function nextPage() { document.getElementById("main").src="http://www.example.com/results.html?id=1&year=" + year + "&month=" + month + "&x=1&y=2"; }

有効期限は気にしません。パスはその 1 つの Web ページである必要があり、ドメインは実際にはハード ドライブに保存されている Web ページです。

4

1 に答える 1

0

Javascript の Cookie は、それらを読み取り/書き込みする関数設計により簡単になります。
Peter-Paul Koch は、www.quirksmode.orgに上記の関数のサンプル セットを持っています。

それらは次のようになります。

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
    var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

または、document.cookie自分で処理するか、Web Storage API を使用してデータを保存することもできます。(Web Storage は古いブラウザではサポートされていない可能性があることに注意してください)

Web Storage API が利用可能かどうかは、次のようにテストできます。

if (window.localStorage) {
    // Web Storage is available
} else {
    // Web Storage is not available
}

何かを保存するには:

// The first parameter is the name, the second parameter is the value to store
localStorage.setItem("month", "3");

値を読み戻すには:

var m = localStorage.getItem("month");
alert("month = " + m);

Web Storage の詳細については、Mozilla Developer Networkを参照してください。

于 2013-09-02T01:40:12.820 に答える