03. januar 2006 - 11:28Der er
16 kommentarer og 2 løsninger
Åbning af vindue i forgrunden
Jeg åbner et nyt vindue med target="new" og det fungerer egentlig også meget godt. Første gang jeg klikker, åbner det nye vindue, klikker jeg et andet link som også skal åbne i "new", så åbner det også, men det sker i baggrunden. Altså vinduet er ikke synligt. Jeg vil gerne med mit link, åbne det nye vindue og hvergang jeg åbner det, have det i forgrunden. Så vil jeg i det nye vindue have et link, så jeg bare kommer tilbage til det første vindue, altså bare at det får focus. Skal jeg virkelig i javascript for at lave det?
Et andet problem er hvor jeg åbner et nyt vindue for at vise et billed, jeg bruger følgende: <a href="#" onClick="window.open('img/husbaad.jpg','vindue','width=600, height=400');">husbåde</a> Problemet er "#", for når jeg åbner vinduet, så går mit oprindelig vindue til toppen. Er jeg midt på en side, vil jeg blive der og bare åbne det nye vindue.
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
Så vil den åbne et nyt vindue hver gang. Jeg vil have det sådan, at klikker jeg 3 gange, så har jeg stadig kun et ekstra vindue åbent.
Det sidste fik jeg forsøgt mig frem til en løsning af, istedet for href="#" skrev jeg href="#1". Jeg har i forvejen et anker i toppen der hedder toppen, det kunne den åbenbart finde.
Nu er jeg da blevet lidt klogere. Det er en fin funktion og jeg får nu vist mit opdaterede vindue i forgrunden hver gang. Nu kan jeg så bare ikke ændre størrelsen, så skal funktionen vel skrives om til også at indeholde størrelsen af vinduet.
-- og hvis størrelserne skal variere, kan du f.eks.
var newWin = {'closed':true}; function openWin(url,bredde,hojde){ if(!newWin.closed) newWin.close(); var l = (screen.availWidth-bredde)/2; var t = (screen.availHeight-hojde)/2; newWin = window.open(url,"newWin","width=" + bredde + ",height=" + hojde + ",top=" + t + ",left=" + l); }
Så tror jeg den er der. Jeg laver det nok en smule anderledes, jeg vil enten åbne et nyt vindue i fuld størrelse, eller en nyt i en fast størrelse. Hvis jeg laver 2 funktioner, en der måske hedder openWinFull og er som den første og en openWinSmall der åbner et nyt vindue i f.ex. 600x400. Smid et svar, så takker jeg for hjælpen
-- og så kan du i øvrigt sagtens bruge den samme funktion til begge dele:
var newWin = {'closed':true}; function openWin(url,bredde,hojde){ if(!newWin.closed) newWin.close(); if(openWin.arguments.length == 3){ var l = (screen.availWidth-bredde)/2; var t = (screen.availHeight-hojde)/2; }else{ var l = t = 0; var bredde = screen.availWidth; var hojde = screen.availHeight; } newWin = window.open(url,"newWin","width=" + bredde + ",height=" + hojde + ",top=" + t + ",left=" + l); newWin.focus(); }
-- hvis du så kalder med angivne størrelser, vil den åbne i den størrelse, kalder du uden størrelser, vil den åbne et vindue i fuld størrelse !-)
Det tænkte jeg også lidt på, men jeg vil bare have et standard vindue, alle billeder der skal vises er lige store. Så slipper jeg for at angive størrelsen i hvert eneste link, men kun én gang i scriptet.
De gange hvor jeg vil åbne et fuldt vindue, skal jeg måske lave lidt om. Jeg kan vel ikke bare bede den om at åbne et vindue maksimeret.
Tjoh, javascript er utroligt aftergivende over for den slags, så du kan bare have et forskelligt antal parametre, f.eks. ingen (udover urlen !-), hvis du vil have det i en fast bestemt størrelse, en ekstra, hvis det skal være maksimeret og to ekstra, hvis det skal være en bestemt størrelse:
function openWin(url,bredde,hojde){ if(!newWin.closed) newWin.close(); switch(openWin.arguments.length){ case 0: return;//intet at åbne, afbryd break; case 1: var bredde = 400;//den faste størrelse var hojde = 300; var l = (screen.availWidth-bredde)/2; var t = (screen.availHeight-hojde)/2; break; case 2: var l = t = 0; var bredde = screen.availWidth; var hojde = screen.availHeight; break; case 3: var l = (screen.availWidth-bredde)/2; var t = (screen.availHeight-hojde)/2; } newWin = window.open(url,"newWin","width=" + bredde + ",height=" + hojde + ",top=" + t + ",left=" + l); newWin.focus(); }
Det er jo helt super, så kan jeg have en fast defineret størrelse og stadig ændre hvis jeg har brug for det. Kender du så lige en kommando hvis jeg vil have focus på det oprindelige vindue, fra det jeg har åbnet? parent.focus.eteller.andet
1000 tak. SÅ er det sengetid!! (på den modsatte side af jorden er klokken snart midnat. )
Synes godt om
Ny brugerNybegynder
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.