Avatar billede wired Nybegynder
13. august 2003 - 00:16 Der er 6 kommentarer

Overføre JS objecter fra side til side

Jeg har et array med 10 object som jeg gerne vil beholde når jeg opdatere siden.

Eks.:

var LastOne = new Array(10);

function wired(element)
{
  LastOne[i] = element
}

Når jeg trykker på et link

<a href="index.aspx">ny side</a>

vil jeg gerne beholde mit array af objecter på den nye side?
Avatar billede roenving Novice
13. august 2003 - 00:26 #1
Det kan du kun, hvis:
1. du overfører dem som kommando-linje-parametre (ie index.aspx?l1=førsteVærdi&l2=andenVærdi osv.)

2. Hvis du har et frameset udenom og det kun er en frame som reloader (samme nummer kan laves med et dokument og en iframe) -- i det tilfælde kan du nemlig oprette værdien i parent:
var parent.LastOne = new Array(10);
Avatar billede wired Nybegynder
13. august 2003 - 00:38 #2
Kan det ikke lade sig gøre at overføre hele array'et på en gang?
Avatar billede roenving Novice
13. august 2003 - 01:01 #3
Kun med 2-eren

-- i url'en kan du kun overføre text-stumper ...

Der er _ingen_ forbindelse mellem to sider som bliver loadet i en browser -- det allernærmeste er, at en efterfølgende side kan finde referrer, altså adressen på den side, som var der før -- intet andet !-)

Hvis du har brug for en fuldstændig reload af siden, kan du kun gøre det ved at reagere med et serverside sprog (eller altså frame din side !-)
Avatar billede socle Nybegynder
13. august 2003 - 01:42 #4
hvad med at bruge en cookie?
Avatar billede roenving Novice
13. august 2003 - 01:50 #5
Ja, socle -- det første man bliver blind på er øjnene !-)

Den er ikke mindre bøvlet -- og kræver også tekst-format -- end url-løsningen, men adskilligt meget mere sikker ...
Avatar billede roenving Novice
13. august 2003 - 02:38 #6
-- og her er så de par funktioner, som skriver og henter en cookie -- een værdi ad gangen !-)

<script language="javascript" type="text/javascript">
function skrivCookie(name,value,expTime,path){//Tid i dage
    switch(skrivCookie.arguments.length){
        case 1,2:
            var expTime = 0;
            var path = "/";
        case 3:
            var path = "/";
    }
    var exp = new Date().getTime()+expTime*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=" + path;
    document.cookie = cook;
}
function hentCookie(name){
    if (document.cookie){
        var n = document.cookie.indexOf(name+"=");
        if (n>-1){
            var val = document.cookie.substring(n+name.length+1);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            return unescape(val);
        }
    }
}
</script>
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