Avatar billede egeriis Nybegynder
22. juli 2003 - 16:43 Der er 3 kommentarer og
1 løsning

JavaScript drilsk cookie

Jeg har følgenede javascript funktioner. Men når man opdaterer siden, og der er sat en cookie, kommer Mozilla med den fejl at "document.getElementById(shownv + "_vsite") has no properties".

Det er med de sidste tre linier kode... Der hvor der er PHP indblandet...



<script type="text/javascript">

var shown = '1';
var shownv = 'generelt';

function show_tab ()
{

    if (shown == '1')
    {

        document.getElementById('tab1').style.display='none';
        document.getElementById('tab2').style.display='block';
        shown = '2';

    }
    else
    {

        document.getElementById('tab2').style.display='none';
        document.getElementById('tab1').style.display='block';
        shown = '1';

    }

}


function show_vsite (site)
{

    if (shownv)
    {
        document.getElementById(shownv+'_vsite').style.display='none';
        document.getElementById(shownv).src='tab_'+shownv+'_inactive.png';
    }

    document.getElementById(site+'_vsite').style.display='block';
    document.getElementById(site).src='tab_'+site+'_active.png';

    shownv = site;


    var today = new Date();
    var expires = new Date();
    expires.setTime(today.getTime() + 1000*60*60*24*365);
    setCookie ('cshwnv', site, expires);

}


// Functions copy/pasted from Netscapes JavaScript 1.3 guid [setCookie (), getCookie ()]

function setCookie(name, value, expire) {
    document.cookie = name + "=" + escape(value)
    + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
}

function getCookie(Name) {
    var search = Name + "="
    if (document.cookie.length > 0) { // if there are any cookies
        offset = document.cookie.indexOf(search)
        if (offset != -1) { // if cookie exists
            offset += search.length
            // set index of beginning of value
            end = document.cookie.indexOf(";", offset)
            // set index of end of cookie value
            if (end == -1)
                end = document.cookie.length
            return unescape(document.cookie.substring(offset, end))
        }
    }
}


<?

if ($_COOKIE[cshwnv])
{

    echo "show_vsite ('".$_COOKIE[cshwnv]."');";

}

?>

</script>
Avatar billede roenving Novice
23. juli 2003 - 01:10 #1
Dit dokument er garanteret ikke initialiseret endnu, så sæt det efter </body>

</body>
<script language="javacscript" type="text/javascript">
<?
if ($_COOKIE[cshwnv]){
    echo "show_vsite ('".$_COOKIE[cshwnv]."');";
}
?>
</script>
</html>

-- alternativt kan du lægge det som en funktion som kaldes onload ...
Avatar billede egeriis Nybegynder
23. juli 2003 - 02:21 #2
Jeg ved at den kører funktionen, da den kommer med det output der siger at shownv ikke er defineret..
Avatar billede roenving Novice
23. juli 2003 - 03:21 #3
Ja, men hvis det køres _inden_ resten af html-koden vil der jo ikke være nogle elementer på siden ...
Avatar billede egeriis Nybegynder
17. september 2003 - 21:34 #4
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester