Ikkunoiden avaus

JavaScript tarjoaa muutaman valmiin keinon avata ikkunoita erilaisia tarkoituksia varten.

window.alert()

Yksinkertaisin ikkuna on ilmoituspop-up.

<script language="JavaScript">

function avaa(){
	window.alert("Jokin viesti käyttäjälle.");
}

</script>

<input type="button" value="Avaa ikkuna" 
	onClick="avaa();0" />
   	

window.confirm()

Seuraava vaihtoehto on pyytää käyttäjää vahvistamaan jokin asia.

<script language="JavaScript">

function conavaus(){

	var vastaus = window.confirm("Kysymys käyttäjälle?");
	
	if (vastaus == true){
		window.alert("Vastasit ok");
	}else if (vastaus == false){
		window.alert("Vastasit peruuta");
	}
}

</script>

<input type="button" value="Avaa ikkuna" 
	onClick="conavaus();" />


window.prompt()

<script language="JavaScript">

function promptavaus(){

	var vastaus = window.prompt("Kysymys käyttäjälle?","Vaihtoehtoinen oletusvastaus");

	window.alert("Vastasit :\n" + vastaus);	
	
}


</script>

<input type="button" value="Avaa ikkuna" 
	onClick="promptavaus();" />


window.open()

Window.open() -metodi aukaisee uuden selainikkunan. Parametreillä voimme hallita, miten ja minkälainen ikkuna avautuu. Kaikki parametrit ovat vapaaehtoisia, ja voimme laittaa niistä funktiokutsuun vain ne, jotka palvelevat tarkoitustamme.

Yksinkertaisimmillaan käsky avaa uuden ikkunan johonkin osoitteeseen. Kohde, eli avaako selain uuden ikkunan vai avataanko sivu samaan ikkunaan, voidaan määrätä toisella parametrillä.

<script language="JavaScript">

function avaaosoite(){
	window.open("http://www.helsinki.fi");		
}

function avaaosoite2(){
	window.open("http://www.helsinki.fi","_self");		
}


</script>

<input type="button" value="Avaa ikkunan omaan ikkunaan" 
	onClick="avaaosoite();"  />

<input type="button" value="Avaa ikkunan samaan ikkunaan" 
	onClick="avaaosoite2();"  />

Seuraava esimerkki avaa ikkunan halutuilla ominaisuuksilla:

<script language="JavaScript">

function avaaominaisuuksilla(){
	window.open("http://www.helsinki.fi","","height=150,width=300,location=no,scrollbars=no");		
}


</script>

<input type="button" value="Avaa määrätyillä ominaisuuksilla" 
	onClick="avaaominaisuuksilla();"  />


Mahdollisia ominaisuuksia listattuna:

heightkorkeuspikseleinä
widthleveyspikseleinä
topavautuvan ikkunan etäisyys yläreunasta pikseleinä
leftavautuvan ikkunan etäisyys vas. laidastapikseleinä
menubaronko valikoitayes, no, 1, 0
resizablevoiko kokoa muuttaayes, no, 1, 0
scrollbarsvoiko scrollatayes, no, 1, 0
statusonko status-kenttääyes, no, 1, 0
titlebaronko title-kenttäyes, no, 1, 0
toolbaronko selaimessa toolbar (IE ja Firefox)yes, no, 1, 0

Avautuneen ikkunan hallinta

Seuraavassa esimerkissä on käytetty hyväksi window.opener -metodia, jonka avulla voidaan kutsua alkuperäiseen ikkunaan kirjoitettuja funktioita. Aluksi kuitenkin otetaan käyttöön kaksi muuttujaa, joita voidaan käyttää kaikkien funktioiden sisällä.


<script language="JavaScript">

var kysely;	//muuttuja johon avautuva ikkuna talletetaan (käytössä näin kaikissa funktioissa)

		//seuraavassa avattavan ikkunan ominaisuudet 
var ominaisuudet = "height=150,width=300,menubar=no,scrollbars=no,status=no,title=no,toolbar=no";


function avaakysely(){

	//käsketään avaamaan ikkuna halutuilla ominaisuuksilla ja talletetaan 
	//ikkuna-objekti muuttujaan nimeltä kysely
	kysely = window.open("","",ominaisuudet); 

	//kirjoitetaan kysely-ikkunaan oma html-koodi
	kysely.document.write("<h2>Kysely</h2>");
	kysely.document.write("Anna alle ikäsi:<br />");
	kysely.document.write("<form name='kysymys'>");
	kysely.document.write("<input type='text' name='vastaus' />");
	kysely.document.write("</form>");

	//window.opener. antaa mahdollisuuden suorittaa funktion alkuperäisestä ikkunasta
	kysely.document.write("<input type='button' value='OK' onClick='window.opener.suljeikkuna();' />");
			
}

function suljeikkuna(){

	//poimitaan ensin vastaus talteen
	var vastaus = kysely.kysymys.vastaus.value;
	
	//kirjoitetaan vastaus haluttuun paikkaan
	document.getElementById("ikaikkuna").innerHTML = "Vastasit : " + vastaus;

	//suljetaan kyselyikkuna
	kysely.close();	
}

</script>

<div id="ikaikkuna">Vastasit : </div>
<br />
<input type="button" value="Kokeile kyselyä" onClick="avaakysely();" />





Vastasit :