Avatar billede ripley Nybegynder
12. december 2000 - 09:58 Der er 6 kommentarer og
1 løsning

globale variabler og javascript

Jeg har to sider: En hovedside, hvor man skal indtaste nogle oplysninger for at oprette en post i databasen og et link på denne side, der åbner en ny side i et særskilt, lille vindue fra den første side - man kan oprette et nyt ord, der skal indgå i listen på åbningssiden, hvorefter hovedsiden refreshes, når man lukker det lille vindue, så det nye ord optræder i <SELECT>´en.

Jeg vil gerne have, at der skal være nogle globale variabler, som begge filer inkluderer - altså javascript-variabler. Når man lukker det lille vindue igen, skal åbningssidens felter gennemgås og alle feltværdierne skrives til de omtalte, globale variabler, før siden reloades. Når siden så reloades, altså på <BODY onload=\" skal variablernes værdier indlæses i felterne. Når man lukker siden, skal variablerne sættes til \"\" igen.
Kan det overhovedet lade sig gøre at have globale javascript-variabler, som man skriver til på denne måde? Kan de gemmes? Jeg synes ikke, jeg kan få det til at virke! :-)
Avatar billede ripley Nybegynder
12. december 2000 - 10:01 #1
For en ordens skyld poster jeg lidt kode her:

javascript-koden på siden med indtastning af nyt ord ser således ud:

    function UpdaterVindue()
    {
        setAllVar();
        opener.location.reload(true);
            window.close();
    }

    function setVar(name,value)
    {
    (eval(\"tempVar\"+name)).value = value;
    }
   
    function setAllVar()
    {
    for(i=0;i<opener.document.nytemne.length;i++)
        {
            var curField = opener.document.nytemne.elements[i];
            if (curField.type!=\"button\" && curField.type!=\"select-multiple\" && curField.type!=\"select-one\")
            {           
                setVar(curField.name,curField.value);       
            }
    }
    }

..mens javascript-koden på hovedsiden ser således ud:

    function getAllValues()
    {
    for(i=0;i<document.nytemne.length;i++)
        {
        var curField = document.nytemne.elements[i];
        if (curField.type!=\"button\" && curField.type!=\"select-multiple\" && curField.type!=\"select-one\") {           
        curField.value = findvalue(curField.name);               
        }
        }
    }

    function findvalue(name)
    {
    return (eval(\"tempVar\"+name).value);
    }
<BODY onload=\"java script:getAllValues();\">

..begge filer inkluderer den samme fil med variablerne;

<!--#include file=\"globalVar.js\"-->

Avatar billede frank_jensen Nybegynder
12. december 2000 - 10:17 #2
Jeg tror, det letteste ville være at gemme dataene som en cookie...  Ellers skal du til at overfører data i forms og indlæse på denne måde. Mit råd er : Opret en cookie med dataset, der indeholder dine globale variabler...
Avatar billede frank_jensen Nybegynder
12. december 2000 - 10:20 #3
Ellers kan du måske gemme variablerne i en skjult frame, men overførelsen skal stadig ske via forms, ellers skal du ind og rode med document-hirakiet i browseren og på den måde finde frem til modtager-vinduet...
Avatar billede ripley Nybegynder
12. december 2000 - 10:23 #4
Jeg vil helst undgå cookies, fordi jeg kan risikere, at brugeren har slået dem fra. Og frames er desværre også udelukket.
ØV! :-(
Avatar billede frank_jensen Nybegynder
12. december 2000 - 11:34 #5
For at kunne gemme data, er du enten nød til at have rettigheder til at skrive en fil på serveren (hvilken man sjældent har), skrive en fil på klienten (cookie) eller selv at overfører dataene med en forms...  så du må igang på den hårde måde :o)
Avatar billede Slettet bruger
13. december 2000 - 14:00 #6
Du kan ikke gemme javscript variabler på den måde (på serveren), så du skal ikke kalde opener.reload().

Du kan give dit dialog vindue en
body.onunload=transfervars;

hvor transfervars er

function transfervars()
{
  opener.<varName> = varName
  ...
}

Du skal også hente variabler fra opener istedet for fra en fil.

<varName> = opener.<varName>

-anders

Avatar billede jakoba Nybegynder
14. december 2000 - 22:37 #7
Jeg tvivler lidt på at dette er hvad du ønsker, men det ku da være du kan bruge noget af det.
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp37998.html

mvh JakobA
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