Új hozzászólás Aktív témák

  • cattus

    addikt

    válasz btz #7252 üzenetére

    Az első hibát ott véted, hogy a givebackCookie függvényben nem nullázod a cookie értékét, így az if-ednek mindig ugyanaz az ága fog lefutni.

    A div újratöltését kezelő kódot meg inkább nem kísérlem meg megérteni és debugolni, meg amúgy is jQuery-t már nem illik 2019-ben használni. :D

    Működő kód:

    function wantCookie() {
    document.cookie = "tesztkuki=Létezik";
    loadDiv();
    }

    function givebackCookie() {
    document.cookie = "tesztkuki=; expires=Thu, 18 Dec 2013 12:00:00 UTC";
    loadDiv();
    }

    window.addEventListener("load", loadDiv);
    function loadDiv() {
    if (document.cookie.includes('tesztkuki')) {
    document.getElementById('cookie-check').innerHTML = "<div id='cookie-want'>Press the button, if you want a cookie<br /><button id='cookiebutton' onclick='wantCookie()'>I want a cookie</button><br /></div> <br />The cookie now DOES NOT exist !";
    } else {
    document.getElementById('cookie-check').innerHTML = "<div id='cookie-give-back'>Press the button, if you want give back the cookie<br /><button id='cookiebutton' onclick='givebackCookie()'>I give back the cookie</button><br /></div> <br /><br />The cookie now exist !<hr />";
    }
    }

    Itt minden cookie változtatás után újratölti a div tartalmát. A window.addEventListener("load", loadDiv); pedig azért felel, hogy az oldal betöltésekor is fel legyen töltve a div.

    indexOf helyett használj includes-ot, ha csak annyit akarsz megtudni, hogy tartalmazza-e az adott dolgot.

    Továbbá ahogy most a div tartalmát kitöltöd, az nem túl elegáns / karbantartható / error-safe. Használj createElement-et és appendChild-ot.

    A fenti kódodat megfixáltam, de erősen ajánlom a fentiek figyelembevételét. Sok későbbi szenvedést tudsz megspórolni.

    +1: Ha nem kötelező cookie-t használni, akkor ajánlom inkább a localStore-et.

Új hozzászólás Aktív témák

Hirdetés