Vindue output
Hvordan anvendes et vindue til output
Teknikken kræver at man med javaScript åbner et nyt vindue, som et pop-up vindue, og holder fat i det, ved at gemme en henvisning til det.
Man kan så skrive til vinduet, og modsat hvis man skriver i sit eget vindue, så tilføjer man blot til det der står i vinduet.
Man kan også åbne og lukke skrivestrømmen, så man kan genopfriske det der stå i vinduet.
Udskrift til et vindue
Det første man skal er at etablere et nyt vindue. Det gøres med:
udVindue = open("", "vindue1", "width=150, height=100, top=0, left=0 resizable=yes");
Her er udVindue den variabel der indeholder henvisningen til vinduet.
open() sørger for at åbne vinduet (hvis browseren tillader det.
"" kan indeholde et filnavn, der så ville vise noget fra starten.
"vindue1" er et navn som andre programmer også kan henvende sig til vinduet.
width og height angiver størrelsen af vinduet
top og left angiver placeringen af vinduet
resizable=yes angiver at vinduet kan ændres af brugeren.
Når vinduet er kommet op, så kan man skrive til det som følger:
udVindue.document.write("Dette er bare en tekst
");
udVindue.document.write() er en almindelig document.write, der bare sender sit output til udVindue
"Dette er bare en tekst
" er det der kommer ud i vinduet.
Eksempel på anvendelse af
Koden skrive forskellige ting i vinduet.
<head> <script type="text/javascript" language="JavaScript"> var titel="Demo af et Window-object"; document.title = titel; var ugedag = new Array(7); var maaned = new Array(12); ugedag[0] = "Søndag"; ugedag[1] = "Mandag"; ugedag[2] = "Tirsdag"; ugedag[3] = "Onsdag"; ugedag[4] = "Torsdag"; ugedag[5] = "Fredag"; ugedag[6] = "Lørdag"; maaned[0] = "Januar"; maaned[1] = "Februar"; maaned[2] = "Marts"; maaned[3] = "April"; maaned[4] = "Maj"; maaned[5] = "Juni"; maaned[6] = "Juli"; maaned[7] = "August"; maaned[8] = "September"; maaned[9] = "Oktober"; maaned[10] = "November"; maaned[11] = "December"; function leadZero(tal) { if (tal < 10) { tal = "0" + tal; } return tal; } function opdaterKlokken() { // Lokal variabel med tiden (så den forsvinder igen) var nu = new Date(); time = nu.getHours(); minut = nu.getMinutes(); sekund = nu.getSeconds(); // Skriv klokken og luk tekst-outputtet, så det er et frisk vindue der skrives i næste gang der kaldes klokken.document.write( "Klokken er " + leadZero(time) + ":" + leadZero(minut) + ":" + leadZero(sekund) ); klokken.document.close(); // Global variabel med en timeout, som opdaterer vinduet efter 1 sekund // Variablen skal være global, for at lukKlokken kan se den timer = window.setTimeout("opdaterKlokken()", 1000); } function lukKlokken() { if (klokken) { // Stopper timer-variablen, så der ikke kommer flere timeouts if (timer) { window.clearTimeout(timer); timer = null; } // Lukker vinuet med klokken i klokken.window.close(); klokken = null; // Fjern variablen, så vi ikke kan lukke vinduet 2 gange } } function startVindue() { klokken = open("", "vindue1", "width=150, height=100, top=0, left=0 resizable=yes"); } function skrivTekst() { klokken.document.write("Dette er bare en tekst<br>"); } function sletIndhold() { klokken.document.close(); klokken.document.write(" "); // Der skal skrives noget andet for at det sletter } </script> </head> <body> <h1><script type="text/javascript" language="JavaScript"> document.write(titel + "</h1>"); document.write("Dette vindue åbner et nyt vindue, der hedder klokken"); startVindue(); </script> <br /> <input type="button" value="Skriv tekst i vinduet" onClick="skrivTekst();"><br /> <input type="button" value="Slet indholdet" onClick="sletIndhold();"><br /> <input type="button" value="Start uret i vinduet" onClick="opdaterKlokken();"><br /> <input type="button" value="Luk vinduet" onClick="lukKlokken();"> </body>
Filen med koden kan hentes i en Zip-fil
Fordele ved udskrift til et andet vindue
Fordelen ved at skrive i et vindue er at det giver ret stor fleksibilitet.
Ulemper ved udskrift til et andet vindue
Ulemperne er faktisk mange, og de hænger mest sammen med den sikkerhed der er i browseren i dag.
Det er forskelligt hvordan browsere håndterer pop-up vinduer - det er i sig selv uheldigt, da man ikke kan være sikker på hvilken browser brugeren anvender.
Tingene udvikler sig også, så der kan komme nye blokeringer på det at arbejde i et andet vindue.
Endelig kan brugeren arbejde med forskellige sikkerhedsindstillinger, så det kan også få ens kode til at opføre sig forskelligt.
Webcode | |
---|---|
JavaScript | for - while - do while - for in - løkke - løkker i løkker - if - if-else - else-if - Conditional - Switch - break - continue - Funktion - Return - Returværdi - Rekursion - Sekvens - Javascript strukturer |
js Input | Checkbox - Dropdown - Form - Input button - Input filter - Input password - Input text - Textarea - submit knap - Option - Prompt - Confirm - Radio button - Select - Input-Tag - Keyboard event |
js Output | Alert - Document.write - Frameset output - Objekt egenskaber - Objekt output - Text-felt til output - Vindue output - Billed egenskaber - Canvas |
js Syntaks | Arrays - Betingelse - Identifyer - Variabel - Variabel scope - Type - Sekvens |
js Objekt | Canvas - Billed egenskaber - Egne objekter - Events - HTML-objekter - Keyboard event - Event-handler - Browser detektering - Preload images - Document Object Model |
Tid i JavaScript | Date objektet - setTimeout - setInterval |
PHP | Header - Include |