JavaScript'e Giriş
Bölüm 6




Fareyle bir kere tıklayıp iki tane sayfanın nasıl yüklenebileceği hakkında birçok mektup aldım. Bu soruya üç ana cevap verilebilir. Birincisi bir düğme yaratırsınız ve bu düğmeye basıldığında iki farklı pencere ya da frame'e iki sayfa yükleyecek bir fonksiyon çağırılır. Aslında hiç de zor birşey değil. Eğer buraya kadar olan tüm dökümanlarımızı sırayla okuduysanız bize gereken herşeyi zaten öğrenmişsiniz demektir.

Üç tane frame yarattık. İlk frame'de düğme yaratıldı. İlk gelen HTML sayfası ise frame'leri yaratmak için ve onlara isim vermek için kullanıldı. Bunun JavaScript'le bir ilgisi yok. Yine de bir bakalım:

frames2.html

<HTML>
<HEAD>
<title>Frame'ler</title>
</HEAD>
    <FRAMESET COLS="295,*"> 
  <FRAMESET ROWS="100%,*"> 
    <FRAME SRC="loadtwo.html" NAME="fr1"> 
      </FRAMESET> 
  <FRAMESET ROWS="75%,25%"> 
    <FRAME SRC="cell.html" NAME="fr2"> 
    <FRAME SRC="cell.html" NAME="fr3"> 
      </FRAMESET> 
</FRAMESET> 
</HTML>

loadtwo.html ilk frame'e yüklendi. Bu frame'de JavaScript fonksiyonu ve düğme var.

loadtwo.html

<HTML>
<HEAD>
<script language="JavaScript">
<!-- Sakla
  function loadtwo(page2, page3) {
     parent.fr2.location.href=page2;
     parent.fr3.location.href=page3;
}
// -->
</script>
</HEAD>
<BODY>
<FORM NAME="buttons">
     <INPUT TYPE="button" VALUE="1satırda iki sayfa" onClick="loadtwo('frtest1.htm','frtest2.htm')">
</FORM>
</BODY>
</HTML>

Düğmeye basıldığı anda loadtwo() fonksiyonu çağırıldı ve iki değer fonksiyona gönderildi. Fonksiyonu incelerseniz 'fr1' ve 'fr2' adlı frame'lere gönderdiğimiz iki değerin yüklendiğini göreceksiniz. Eğer farklı adresleri içeren birden fazla düğme kullanacaksanız bu fonksiyonu yeniden çağırabilirsiniz. Tek yapmanız gereken yeni düğmenizde yani adresleri fonksiyona göndermek...


İkinci teknik ise hyperlink'leri kullanmaktır. Internet'te bu yönde bazı örnekler mevcuttur:
<a href="yourlink.html" onCLick="fonksiyon()">
Bu teknik sağlıklı olarak her platformda çalışmıyor. Bu yüzden kullanmamanız daha iyi olur ancak telaşa gerek yok. Çünkü link'lerde JavaScript fonksiyonu çağırmanın daha kesin bir yolu var:

<a href="javascript:fonksiyon()">Adres</a>
Bunun gerçekten de hiçbir zorluğu yok ve tüm JavaScript destekleyen alıcılarda gayet güzel çalışıyor. Eğer yukarıdaki örnekte verdiğimiz 'loadtwo()' fonksiyonunu bu şekilde kullanırsanız düğme yaratmadan da bir tıklamada iki sayfa açabilirsiniz.


Üçüncü bir teknik de şöyle oluyor:
<a href="getfr2.htm" target"fr2">Buraya Tıklayın!</a>
Bu zaten bildiğimiz basit bir HTML komutu. Ancak iş yüklenen getfr2.htm sayfasında bitiyor:

getfr2.htm

<HTML>
<BODY onLoad="parent.fr3.location.href='getfr3.htm'; return true;">
Hebele Hubele
</body>
</html>

Tabii bunun için ikinci frame'e yüklediğiniz her sayfanın başına bunun gibi bir satır eklemeniz gerekiyor. Burada <BODY ...> komutuna koyduğunuz bir onLoad özelliği ile ikinci frame'e yüklediğiniz sayfa yükleme bittikten sonra üçüncü frame'e diğer dökümanı yüklüyor.


Diğer bir yaygın problem ise açılan pencereye yeni bir sayfanın nasıl yükleneceği. Bunun için yakından tanıdığınız bir komut kullanılır: TARGET
<a href="herhangibiradres.html" target="Pencere Adı">Git!</a>


Şimdi sizinle JavaScript'te kullanılan değişik operatörlere bakalım. Operatörler script'inizi güçlendiren ve kısaltan iyi bir tekniktir. Örneğin x değişkeninin 3'ten büyük, 10'dan küçük olduğunu anlamak istiyorsanız şu şekilde yazmak aklınaıza gelebilir:

if (x > 3) 
  if (x < 10)
    herhangibirfonk();

'herhangibirfonk()' fonksiyonu eğer x > 3 ve x < 10 ise çağırılacaktır. Bunu yazmanın daha iyi bir yolu var:

if (x>3 && x<10) herhangibirfonk();
&& AND (ve) operatörü olarak adlandırılır. Öyleyse bir de OR (ya da) operatörü olmalıdır. Eğer bir değişkenin 5'e eşit ya da başka bir değişkenin 17'ye eşit olduğunu öğrenmek istiyorsanız:

if (x==5 || y==17) herhangibirfonk();
yazabilirsiniz. 'herhangibirfonk()' fonksiyonu eğer x 5'e eşit olursa ya da y 17'ye eşit olursa çağırılacaktır.
Eşitlikler JavaScript'te '==' ile belirtilir (Tabii <,>,<= and >= işaretleri de var). Eğer C/C++ biliyorsanız bu işaretler aynıdır. '=' işareti değişkene değer atamak için kullanılır. '==' ise eşitlik belirtir.

Eğer değişkenin eşitsizliğini inceleyecekseniz '!=' işareti işinizi görecektir: x != 17.

Bunlar en çok kullanılan operatörlerdir. Eğer Netscape'in dökümanlarına bakarsanız birçok operatörü daha tanıma imkanınız olabilir.
( http://www.gazi.edu.tr/~ozan/javascript adresinde mirror'u var)


İndeks - Bölüm 1 - Bölüm 2 - Bölüm 3 - Bölüm 4 - Bölüm 5 - Bölüm 7


11.Mayıs'96
© 1996 Stefan Koch