17. juli 2001 - 13:23Der er
11 kommentarer og 1 løsning
Tjekke om et vindue er åbent, hvordan?
Jeg åbner et nyt vindue med følgende funktionskald:
x = window.open(\'Page3.html\', \'vindue\', \'width=450, height=350\');
og det virker fint. Problemet er bare, at det kun skal muligt at åbne ét vindue. Dvs. næste gang brugeren trykker på \"åben-vindue\" knappen, så skal JavaScriptet først tjekke om der allerede er et vindue åbent - og kun i dette tilfælde skal vinduet åbnes.
var x; // NB: x skal defineres udenfor funktionen.
function winOpen( url, bredde, hojde ) { if ( x && x.aabnet ) { x.location.href = url; x.resizeTo( bredde, hojde ); // eller er det ( hojde, bredde ) ? x.focus(); } else { x = window.open(url, \'vindue\', \'width=\'+bredde+\', height=\'+hojde ); x.aabnet = true; if (x.focus) x.focus(); }; }; //end winOpen( string, int, int )
// --> </script>
der hvor du vil åbne et vindue kalder du så winOpen(...) istedet for window.open(...). bemærk at nr 2 parameter (vinduets navn) er fjernet og ikke skal med. fx: <input type=\'button\' value=\'lav popop\' onclick=\"winOpen(\'en_side.html\',400, 260);\">
jakoba: Det ser meget fornuftigt ud, det du har skrevet, men jeg synes ikke det virker helt som det skal. Hvis man har åbnet et vindue, så åbner den ganske rigtigt ikke et nyt (perfekt), man hvis man lukker \"det nye\" vindue, og trykker på \"lav popup\" igen så kommer der en Runtime Error. hmmm...
<ole> Når et vindue åbnes med JavaScript, får det faktisk automatisk tildelt en property, der hedder \'closed\'. Det er en boolean, der er false til vinduet lukkes, men er true, når det er lukket. Til gengæld eksisterer denne property jo ikke, før objektet er blevet deklareret, så derfor:
...og skriv iøvrigt hellere: win = window.open(url, \'win\', \'width=\'+bredde+\',height=\'+hojde ); jakoba >> Husk: Ingen mellemrum mellem de sidste parametre (højde, bredde, location, toolbar...osv) i en window.open() :) /mvh
Tak for hjælpen. Nu fik jeg det til at virke... jeg har dog stadig et lille tæt relateret spørgsmål, som jeg skrivet om i et nyt indlæg.
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.