17. juli 2001 - 16:12Der er
19 kommentarer og 1 løsning
At dele et vindue mellem flere JavaScripts, hvordan?
Jeg opretter et nyt vindue via. et JavaScript med følgende funktion:
var win = new Object(); win.closed = true; function openEditorWindow(url, width, height) { if ((win != null) && (!win.closed)) { win.resizeTo(width, height); win.focus(); } else { win = window.open(url, \'nytvindue\', \'width=\'+width+\',height=\'+height); win.focus(); } }
keine probleme - alt virker fint! MEN: hvis jeg åbner et nyt browser-vindue og kører JavaScriptet igen, så henviser de to JavaScripts til det samme \"nye vindue\", nemlig: \'nytvindue\'. Det giver nemlig nogle problemer med window handlenen \'win\'. Hvordan løser jeg lige det?
Den løsning jeg er ude efter er, på en eller anden måde, at undersøge om der ved opstart allerede er åbnet et vindue med navnet \'nytvindue\'. I så fald skal min window-handle \'win\' sættes til at pege på dette vindue. Kan det lade sig gøre? (hæver til 60 point).
Nu dukker der en tekst op hver gang \'nytvindue\' bliver loaded på ny. Problemet opstår hvis man går op i browser-menuen og vælger File->New->Window, og derefter trykket på den HTML button, som genererer \'nytvindue\': \'netvindue\' bliver loaded på ny, hvilket absolut IKKE må ske.
Det vil du ikke kunne undgå, da du har to forskellige sider (hvis brugeren åbner et nyt vindue via \'File->New->Window\'). Den ene side har ingen mulighed for at kende til script\'s på den anden side...og kan ikke umiddelbart få det. Den fejl må du leve med - eller ændre din approach fundamentalt. /mvh
Jo, hvis du går turen rundt om kagebordet, kan du sikkert sætte en kage og spørge til den....jeg har dog ikke tid til at lave et eksempel lige nu :o) /mvh
Det kan åbenbart kun lade sig gøre, at gemme tekst i en cookie... lort! Hvad kan man så bruge det skidt til? Jeg nægter at tro på, at det ikke kan lade sig gøre. Det må da være muligt at erklære en variable for static, så den gemmer sine værdier...?
Det kan du ikke - uanset din tro! :) Men det er da også rigeligt at spørge, om der eksisterer en cookie med strengen \'side1.html\', når du åbner et vindue med \'side1.html\'. Hvis ikke der eksisterer en cookie, skal vinduet åbnes og en cookie sættes med strengen \'side1.html\' - hvis cookie\'en eksisterer og strengen er \'side1.html\', skal der ikke ske noget - hvis cookie\'en eksisterer og strengen er noget andet end \'side1.html\' skal der reloades med \'side1.html\'. Ved lukning af vinduet skal cookie\'en slettes. /mvh
Det lyder som en løsning der kan bruges. Det vil jeg arbejde lidt med. Hvordan er det nu lige at jeg sletter en cookie når siden lukkes ned? Kan jeg evt. fange en event når browser vinduet lukker?
Ja, men så fyres event\'en af, hver gang du reloader siden. Du kan dog lave et frameset med rows=\"100,*\" og så lægge en onunload i frameset-tag\'et...ellers ikke. /mvh
Nej, men hvad sker der, når du loader en ny side ind i et vindue? Den gamle side unloade\'er.....ikke sandt? =) Det gør frameset\'et ikke, når du loader en ny side ind i en af dets frames ;o) /mvh
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.