Javascript Dersleri 2
Frames (Çerçeveler)
Javascript’te frameler pencerelerle eÅŸit iÅŸlem görür. Sanırım bir pencerenin içeriÄŸinin nasıl deÄŸiÅŸtiÄŸini hatırlarsınız. Hepsi frameler içinde geçerlidir. Basit anlatımla, her frame ayrı bir pencere olmalıdır. EriÅŸim ÅŸekli haricinde baÅŸka hiç bir fark yoktur.
Frameler arası komünikasyon
Buda aynı HTMLde olduÄŸu gibi çalışır. Prensip aynıdır. HTML ile, baÅŸka bir frame’e baÄŸlanmak için target=”frameadı” kullanırsınız, javascript ile parent.framename.location.href = ‘http://www.herhangibir.com’. Gördünüz mü? nekadar kolay. EÄŸer, benimsayfam adlı frame a link verecek bir javascript isterseniz, şöyle yazacaksınız:
<a href=”#” onClick=”parent.benimsayfam.location.href = ‘http://www.herhangibir.com’”>Herhangibir.com</a>
Anlaşıldı mı? Şimdi gerçekten frameler arası komünikasyona başlayalım. Bir frameden öbürüne bir kaç kelime yazalım. Tetikleyen de bir link olsun. Framesetin kodu şöyle:
<frameset rows=”50%,50%”>
<frame src=”top.htm” name=”top_frame”>
<frame src=”target.htm” name=”target”>
</frameset>
Şimdi, target.htm yi yapınız fakat içi boş olsun, hatta <HTML> etiketleri bile olmasın.
Gelelim top.htm ye. Herhangi bir linki tetikleyici olarak kullanıyorum. şöyle:
<a href=”#” onClick=”parent.target.document.writeln(’Heeeeyyy!!!’)”>Acaba çalışacak mı?!</a>
Yukardaki satır uygulanmaya baÅŸladığı zaman, Javascript target adındaki frame’e ulaşır. Daha önceden dediÄŸimiz gibi frame bir pencere gibi düşünüldüğü için, document özelliklerine sahiptir. Nerede document var ise orada writeln() metodu vardır ve oda frame’in içeriÄŸinin üzerine yazar ve “Heeeeyyy!!!” çıkar.
