Çerçevelerin, navigator açısından nasıl bir hiyerarşi işlediğini nesneler dersinde vermiştik. Javascript açısından her bir çerçeve bir pencere sayılır.Bunlara atıfta bulunurken şu adlandırma uygulanır:
top |
En üst pencere. yani Browser’ın kendisi. |
parent |
Herhangi bir frame i oluşturan Frameset.Çerçeve çerçeve içinde ise, bir çerçevenin içinde bulunduğu çerçeve parent sayılır. Sayfada bir Frameset varsa, bütün çerçeveler için "top" aynı zamanda "parent" sayılır. |
self |
Çerçevenin kendisi. |
Javascript, bir parent Frameset’in yavru çerçevelerini 0’dan itibaren numaralar.Yani, sayfanızda iki çerçeveniz varsa, birincisi "parent.frames[0]" ikincisi ise "parent.frames[1]" adıyla bilinir.
Şimdi adım adım bir örnek yapalım.
İki çerçeveli bir frameset için aşağıdaki kodlar anacerceve.asp ismi ile kaydedildi.
<html>
<head>
<title>Dinamik Cerceve</title>
</head>
<frameset cols="*,*">
<frame src="jsd17nin/ic1.asp" name="cerceve1">
<frame src="jsd17nin/ic2.asp" name="cerceve2">
</frameset>
<noframes>
<body>
</body>
</noframes>
</html> |
Şimdi ise çecevelerde yer alacak sayfaları hazırlayalım.
ic1.asp sayfasının içeriği:
<html>
<head>
<title>ic1</title>
<script LANGUAGE="JavaScript1.2">
function renklen()
{
parent.frames[1].document.clear();
parent.frames[1].document.write("<html><head>" +
"<title>Dinamik Güncelleme Örnegi</title>");
parent.frames[1].document.write(" </head><body bgcolor=\"" +
document.form1.input1.value + "\">");
parent.frames[1].document.write("<h2>Renklendirilmiş sayfa</h2>");
parent.frames[1].document.write("</body></html>");
parent.frames[1].document.close();
}
</script>
</head>
<body>
<form NAME="form1">
Metin kutusuna ingilizcebir renk ismi veya renk kodu giriniz.<br><br>
<input type="text" name="input1" size="20"><br>
<input type="button" value="Yandaki çerçeveye renk verelim" onClick="renklen()">
</form>
</body>
</html> |
ic2.asp sayfasının içeriği:
<html>
<head>
<title>ic2</title>
</head>
<body>
<h3>Bu sayfa renklendirilecek</h3>
</body>
</html> |
(( anacerceve.asp dosyasını görüntülemek için tıklayınız! ))
Örneğimizde, document.write() metoduyla, hedef çerçevemiz olan iki numaralı çerçevenin (parent.frames[1]) birinci çerçevedeki formdan aldığımız unsurları kullanarak, zemin rengini ve içeriğini değiştirdik.Sizde bu örnekten yola çıkarak, bir çerçevede meydana gelen değişikliklerden yola çıkarak, diğer çerçevelerde değişimler meydana getirebilirsiniz. |