Java Script Sayfa Nesnesi
Java Script Sayfa Nesnesi
Sayfa nesnesi, hiyerarşide pencereden sonra geliyor. Bir sayfa nesnesi form, resim gibi birçok başka nesneyi içerir. Eğer başka bir pencere söz konusu değilse, sayfa komutlarımız document. ile başlar ama uygulama birden çok pencere içeriyorsa pencere isimlerini de belirtmek gerekir: yenipencere.document. gibi.
Elemanlar Dizisi
Hiyerarşi sıralamasında sayfaların elemanları olduğunu görmüştük (DHTML sayfasındaki arakladığım grafiği hatırlayın). Bu elemanlar (form, resim) sayfa üzerinde bir dizi oluşturur. Örneğin sayfa üzerindeki formlar document.forms dizisi ile ifade edilir. Aynı şekilde sayfa üzerindeki resimler document.images dizisi halinde ifade edilebilir. Aşağıdaki uygulamada sayfa üzerinde kaç tane form olduğunu bulmak için, diziye length kodu atanıyor. Bu kodu Diziler sayfamızdan hatırlıyoruz, dizinin eleman sayısını buluyor.
Javascript:
<html>
<head>
<title>sayfa Elemanları,</title>
<script language="JavaScript">
function say()
{
alert("sayfada " + document.forms.length + " tane form vardır.")
}
</script>
</head>
<body onload="say()">
<form name="Form1">
Adı:<input><br>
SoyAdı:<input><br>
</form>
<form name="Form2">
Adresi:<input><br>
Telefonu:<input><br>
</form>
<form name="Form3">
E-mail:<input><br>
URL:<input><br>
</form>
<form name="Form4">
Mesleği:<input><br>
</form>
</body>
</html>
Aynı şekilde forumda kaç resim olduğunu görmek için document.images.length kodunu kullanabilirdik. Daha önce dediğimiz gibi forms ve images dediklerimiz, birer dizidir(array). Yaptığımız şey, bu dizinin eleman sayısını bulmak. Ayrıca istediğimiz elemanların tanımlanmış parametrelerini bu dizi sayesinde öğrenebiliyoruz. Bunun için dizinin elemanını ve sonra parametre kodunu yazıyoruz: mesela document.images[3].src kodu ile 4. resmin kaynak adresini edinmiş oluruz. Aşağıdaki uygulamada sayfa üzerindeki formların tanımlanmış bgcolor ve name parametrelerini öğreniyoruz.
Javascript:
<html>
<head>
<title>sayfa Elemanları,</title>
<script language="JavaScript">
function say()
{
var isim,renk
isim = "Birinci formun ismi: "+document.forms[0].name
isim += "n İkinci formun ismi: "+document.forms[1].name
isim += "n Üçüncü formun ismi: "+document.forms[2].name
isim += "n Dördüncü formun ismi: "+document.forms[3].name
renk = "Birinci formun rengi: "+document.forms[0].bgcolor
renk += "n İkinci formun rengi: "+document.forms[1].bgcolor
renk += "n Üçüncü formun rengi: "+document.forms[2].bgcolor
renk += "n Dördüncü formun rengi: "+document.forms[3].bgcolor
alert(isim)
alert(renk)
}
</script>
</head>
<body onload="say()">
<form name="AdSoyad" bgcolor="red">
Adı:<input><br>
SoyAdı:<input><br>
</form>
<form name="AdresTel" bgcolor="green">
Adresi:<input><br>
Telefonu:<input><br>
</form>
<form name="EmailURL" bgcolor="pink">
E-mail:<input><br>
URL:<input><br>
</form>
<form name="Meslek" bgcolor="yellow">
Mesleği:<input><br>
</form>
</body>
</html>
Form ve resim elemanları değil, başka sayfa dizilerimiz de var. Örneğin anchors dizisi ile sayfa üzerindeki anchor`ları () tanımlayabiliyoruz. Veya aynı şekilde links dizisi ile sayfadaki linklerin dizisini, applets ile sayfadaki applet`lerin dizisini oluşturabiliyoruz.
Sayfa Bilgileri
Yapacağımız yazılımda, sayfayla ilgili bazı bilgileri kullanabiliriz. Sayfanın başlığını kodla öğrenmek için title sayfa kodunu kullanırız. Şöyle kısaca listeleyim:
title Sayfanın başlığını metinsel olarak ifade eder.
document.title
URL Sayfanın URL adresini metinsel olarak ifade eder.
document.URL
referrer Sayfanın refere edilen URL adresini metinsel olarak ifade eder.
document.referrer
domain Sayfanın domain ismini metinsel olarak ifade eder.
document.domain
cookie Sayfanın cookie`lerini metinsel olarak ifade eder.
document.cookie
body Sayfanın gövde bölümünü metinsel olarak ifade eder.
document.body
Javascript:
<html>
<head>
<title>Sayfa bilgileri,</title>
<style>table {visibility:hidden}</style>
<script language="JavaScript">
function sayfa()
{
tablo.style.visibility="visible"
baslik0.innerHTML=document.title
baslik1.innerHTML=document.URL
baslik2.innerHTML=domain
baslik3.innerHTML=document.cookie
baslik4.innerHTML=document.body
baslik5.innerHTML=document.referrer
}
</script>
</head>
<body>
<form>
<input type="button" value="Sayfa Bilgileri" onclick="sayfa()">
</form>
<table id="tablo" cellpadding="3" cellspacing="0" border="1" bgcolor="#d5c481">
<tr><td>Sayfanın başlığı:</td><td>
<a id="baslik0">Görünmüyor</a></td></tr>
<tr><td>Sayfanın URL adresi:</td><td>
<a id="baslik1">Görünmüyor</a></td></tr>
<tr><td>Sayfanın domain ismi:</td><td>
<a id="baslik2">Görünmüyor</a></td></tr>
<tr><td>Sayfanın cookie`si:</td><td>
<a id="baslik3">Görünmüyor</a></td></tr>
<tr><td>Sayfanın gövdesi:</td><td>
<a id="baslik4">Görünmüyor</a></td></tr>
<tr><td>Refere URL adresi:</td><td>
<a id="baslik5">Görünmüyor</a></td></tr>
</table>
</body>
</html>
Bu uygulamamızda bazı bilgiler "" değerini taşıdığı için tabloda yer almıyor.
Yeni Sayfa Açma
Aynı pencerede başka sayfa açmak için document.open() sayfa kodunu kullanırız. Bu bomboş bir sayfa demek, bu sayfayı HTML kodlarıyla doldurmak için write sayfa kodu veya writeln sayfa kodundan yararlanırız. Bunu JavaScript derslerimizin başından beri yapıyorduk zaten. writeln kodunun write kodundan farkı en sona satır koyması. Kısa bir uygulama geliştirelim.
Javascript:
<html>
<head>
<title>Sayfa bilgileri,</title>
<script language="JavaScript">
function yenisayfa()
{
var x=document.open()
document.writeln("<html><title>Aha Size Beyaz Sayfa!</title></html>")
}
</script>
</head>
<body>
<form>
<input type="button" value="Beyaz Sayfa Açalım" onclick="yenisayfa()">
</form>
</body>
</html>