Vindue output

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

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.