-3

JavaScript を 1 回だけ実行し、Cookie に保存する必要があります。次に、関数を実行しようとするときに、Cookie が保存されているかどうかを確認します。保存されている場合は、関数をトリガーしないでください。

私が必要とすることをしないので、このスクリプトにはエラーがあると確信しています:

var prom = getCookie('prom');
if (prom === null || prom === '0') 
{
if (document.getElementById('tst')){
    var str=document.getElementById("tst").innerHTML;
    var n=str.replace("Login","Logout");
    document.getElementById("tst").innerHTML=n;
    setCookie("prom",'1',1);
}
}

「ログアウト」の「ログイン」を変更するためにスクリプトがトリガーされる HTML コード

<a href="login"  title="log in" class="login_button" id="tst">Login</a></span>

Cookie スクリプト:

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

function getCookie(name) {
    var re = new RegExp(name + "=([^;,]+)");
    var value = re.exec(document.cookie);
    return (value !== null) ? unescape(value[1]) : null;
}

http://jsfiddle.net/8yZaP/11/の場合の Jsfiddle テスト

4

1 に答える 1

6

変化する

if (prom = '0'){

if (prom === '0'){

(もちろん、sessionStorageと同様に持続すると仮定getCookieします)。setCookie

于 2013-04-05T19:56:49.480 に答える