JavaScript Kitap
JavaScript Kitap
Seval ÖZBALCI
[Link]@[Link]
MANİSA 2003
İÇİNDEKİLER
İÇİNDEKİLER ...................................................................................... 2
JAVASCRIPT ......................................................................................... 4
DEĞİŞKENLER..................................................................................... 6
Genel Değişken Özellikleri .................................................................. 6
Değişkenlerin İşlem Operatörleri İle Kullanımı ....................................... 7
Aritmetik Operatörler................................................................................. 8
Karşılaştırma Operatörleri........................................................................... 9
Mantıksal Operatörler ................................................................................ 9
Özel karşılaştırma Operatörü....................................................................... 9
Internet Explorer & Netscape Farkı .................................................... 11
Ekrana Çıktı Ve Klavyeden Bilgi Giriş.................................................. 14
Prompt ()................................................................................................14
Write() ...................................................................................................15
KOŞUL VE DÖNGÜLER ........................................................................ 16
Koşul Yapıları ................................................................................. 16
If (Eğer) .................................................................................................16
If .. Else (Eğer ... Değilse) .........................................................................16
Döngü Yapısı .................................................................................. 18
For Döngüsü............................................................................................18
Şartlı Döngü Yapısı While ..........................................................................19
Do .. while yapısı .....................................................................................19
Break ve Continue İfadeleri .......................................................................20
Switch-Case İfadesi ..................................................................................21
FONKSİYON KAVRAMI ........................................................................ 22
Fonksiyona Değer Gönderme ve Değer Alma....................................... 22
NESNELER VE ÖZELLİKLERİ................................................................. 24
Window Nesnesi ............................................................................. 24
Pencere Açmak Ve Kapamak ......................................................................24
[Link] ..........................................................................26
[Link]...................................................................................26
Status Bar Kullanımı .................................................................................27
Tarayıcı Nesnesi ............................................................................. 27
Çerçeve (Frame) Nesnesi ................................................................. 27
Form Nesnesi ................................................................................. 29
Text Alanı ...............................................................................................30
Şifre Alanı ...............................................................................................30
Butonlar .................................................................................................31
Radyo (Radio) Düğmeleri ..........................................................................31
Select Unsuru ..........................................................................................32
OLAYLAR .......................................................................................... 33
onClick .......................................................................................... 33
onMouseOver , onMouseOut ............................................................. 34
onSubmit....................................................................................... 35
2 :.
onReset ......................................................................................... 35
onChange ...................................................................................... 36
onLoad, onUnLoad .......................................................................... 37
onError, onAbort ............................................................................. 37
JAVASCRİPT İLE DHTML ..................................................................... 38
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 3
JAVASCRIPT
Java ile JavaScript oldukça fazla karıştırılmaktadır. Java, Sun firması tarafından
Pascal ve Delphi dillerinden esinlenerek yazılmış bir programlama dilidir. Sonuçta
işletim sistemlerinden bağımsız bir program elde edersiniz. Yani exe veya com uzantılı
dosya oluşturur. Fakat JavaScript bu tür bir programlama dili değildir. Yorumlanması
için bir tarayıcıya ihtiyaç duyar. Bu yüzden script dilidir. Html dosyasını içine
gömülüdür. Sonuçta elinizde exe veya com uzantılı bir dosya yoktur. Javascript,
Netscape firması tarafından C dilinden esinlenilerek yazılmıştır. Yazılma amacı Html'in
sahip olmadığı bazı özelliklerin web sayfalarında kullanılmak istenmesidir. Ziyaretçi ile
etkileşim gibi önemli unsurlarda Html'in eksiklerini tamamlayıcı unsurlara ihtiyaç
duyulması sonucunda Netscape firması bu konuya ağırlık vererek JavaScript script
dilini internet ortamına kazandırmıştır.
o JavaScript kodları <script> etiketi ile başlar, </script> etiketi ile biter.
<script>
<!—
JavaScript kodları
-->
</script>
4 :.
açıklamalar // ile başlar ve // ile biter. Eğer açıklamanız bir satırdan fazla ise /* ile
başlar */ ile biter.
Örnek:
// bu satır kullanılacak değişkenlerin tanımlanması
/* açıklama satırı 1
açıklama satırı 2
açıklama satırı 3 */
JavaScript kodları Html kodların arasında yer alır. Veya uzantısı js olan
dosyalarda saklanarak yine Html içerisinden çağırılır. Java Appletleri gibi Html'den ayrı
bir unsur değildir. Javascript Html'in bir parçasıdır.
Javascript kodları bittiğinde elinizde asla kendi başına çalışan uzantısı exe veya
com olan bir dosya olmaz. Her zaman için tarayıcı tarafından yorumlanması gerekir.
Yorumlanması demek Javascript kodunun çalışması anlamındadır.
Nesne ve buna uygulanan olaylar ile ilgili bir takım görevleri vardır. Javascript
kullandığı her unsuru nesne olarak algılar. Siz bu nesneleri tıklamak, üzerine gelmek,
üzerinde çıkmak gibi olaylar ile çalıştırırsınız ki bu da Javascript'in ziyaretçi ile
etkileşmesi demektir.
NOT: Her konuyu şöyle bir okuyup hemen ardından uygulamalısınız. Uygulamada dikkat edilmesi gereken;
her kod örneğinin (değişkenler konusundakiler gibi) kendi başına bir iş yapmayabileceğidir. Bu tür kodlar
diğerlerinden farklı olarak arka planı açık sarı ve italik olarak yazılmıştır. Uygulayabilmek için diğer birtakım
kodlara da ihtiyaç duyulur. Bu yüzden bu tip konuları sadece bilginiz olması amacıyla okuyup geçiniz.
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 5
DEĞİŞKENLER
Örnek:
var sayi;
var sayi1=10;
var yazi1="10";
Burada birinci satırdaki "sayi" değişkeni script kodunun herhangi bir yerinde
kullanılmak üzere oluşturulmuştur. İkinci satırda "sayi1" adındaki değişkenin değeri
hemen o satırda = ifadesinden sonra verilmiştir. Böyle değişken tanımıda yapılabilir.
Üçüncü satırda ise değişkenin karakter ifadesi olarak kullanımını görüyoruz. Burada
önemli olan karakter değişkenlerin alıntı " " ifadesinin arasında kullanılmasıdır. Her
değişkenden sonra ; işareti konulmalıdır. Tarayıcı, bir başka komut satırına geçtiğini
bu yol ile anlar.
Örnek:
var sayi1=10;
var sayi2=20;
var sayi3=sayi1+sayi2;
Örnek:
var sayi1="10";
var sayi2="20";
var sayi3= sayi1+sayi2 ;
6 :.
Bir önceki örnekten farklı olarak değişken değerlerinin alıntı işaretleri içerisinde
yazdık. Eğer sayi3 adlı değişkeni tarayıcıda bastırırsak göreceğimiz ifade 1020
ifadesidir. Yani tarayıcı karakter olarak tanımladığımız değişkenleri ardada ekledi.
Burada unutulmaması gereken şey bunun sadece + işleminde geçerli olmasıdır. Diğer
işlem türlerinde bu tür bir sonuç alınamaz.
3) Değişken adı verirken kullandığımız harflerin büyük veya küçük olması bazı
tarayıcılarda fark etmezken çoğu tarayıcıda farklı bir değişken anlamındadır. Yani;
var say=1;
var Say=1;
o Aritmetik operatörler
o Karşılaştırmak operatörleri
o Mantıksal operatörler
o Özel operatörler
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 7
ARİTMETİK OPERATÖRLER
Örnek:
var i=10;
var j=11;
var k=12;
var m,n;
m=i*j+k;
n=i*(j+k);
Beşinci satırın cevabı (10*11)+12 = 122 şeklinde olacaktır. Son satırda ise
sonuç 10*(11+12) = 230 olacaktır. Diğer bir işlem operatörü olan % 'nin yaptığı işlemi
şu şekilde anlatabiliriz. % operatörü % işaretinin solundaki değişkeni sağındaki
değişkene böler ve kalanı verir. Örnek olarak;
-= : *= : /= : %= : ++ : --
x+=y x=x+y
x-=y x=x-y
x*=y x=x*y
x/=y x=x/y
x%=y x=x%y
x++ x=x+1
x-- x=x-1
var x,y,z;
8 :.
x=10; y=20; z=30;
x++; x+=y; z--; y*= z;
KARŞILAŞTIRMA OPERATÖRLERİ
> soldaki değişkenin sağdaki değişkene göre büyük olup olmadığını kontrol
eder.
MANTIKSAL OPERATÖRLER
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 9
Bunu bir örnekle açıklayalım. Değişkenleri var ile tanımladığımızı farz ediyorum.
Buna göre ;
a<b?c:d
Örnek :
<script Language="JavaScript 1.2">
<!—
var i=1; var j=2;
var k=3; var m=4;
var n=5;
var p=6;
var q=7;
i=+j;
j++;
k--;
m=m+k;
n=*j;
i < j ? 3 : 1 ;
k >= n ? 0 : 1 ;
k=2 && j=5 ? p : q ;
i=2 || j=3 ? m : n ;
p!=2 ? k : 10 ;
-- >
</script>
İlk yedi satırda değişkenlerimizi hem tanımladık hem de değer atadık. Böyle bir
yazımı yapabileceğimizi değişkenleri anlatmaya başlarken söylemiştik.
İşlem satırlarına geçtiğimizde ise;
i+=j;
Bu işlem daha da önce gördüğümüz gibi bize i=i+j işlemini yapmamızı söyler.
Buna göre i değişkeninin değeri 3 olacaktır. Hemen altındaki satırda bulunan j++
işlemi dolayısıyla da j değişkeni 3 değerini alacaktır. Diğer işlem satırında k--işlemi ile
de k değişkeni 2 değerini alır. Bir diğer satırdaki m=m+k işlemi ile m(m=4) değişkeni
k(k=2) değişkeni toplanarak 6 değerini alır. n=*j işlemi ile de n(n=5) değişkeni
3*5=15 değerini alacaktır.
10 :.
Şimdi diğer karşılaştırma işlemlerine geçmeden önce değişkenlerimizin işlem
sonrası aldığı değerleri yazalım.
k>=n ? 0 : 1 ;
p!=2 ? k : 10 ;
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 11
ie4 = ([Link]) ? true : false ;
nn4 = ([Link]) ? true : false ;
Biz bu iki satırla bir önceki ders olan değişkenler ve mantıksal operatörler
yardımıyla iki tarayıcıyı da kontrol altına aldık. Bir diğer örnekle yapıyı pekiştirelim.
<script language="Javascript">
<!-- // Kodları eski sürüm tarayıcılardan saklayalım.
ie4 = ([Link]) ? true : false ;
nn4 = ([Link]) ? true : false ;
if (ie4)
{
// MSIE 4.0 için uygun kodları buraya yazacağız
}
else
{
// NN 4.0 için uygun kodları buraya yazacağız.
}
//Saklamayı bitir -->
</script>
Örnek Uygulama 1:
<html>
<head>
<title>Tarayıcı kontrolü</title>
<head>
<script language="Javascript">
<!-- // Kodları eski sürüm tarayıcılardan saklayalım.
function tarayici() {
ie4 = ([Link]) ? true : false ;
nn4 = ([Link]) ? true : false ;
if (ie4)
{
// MSIE 4.0 için uygun kodları buraya yazacağız.
12 :.
[Link]="[Link]";
}
else
{
// NN 4.0 için uygun kodları buraya yazacağız.
[Link]="[Link]";
}
}
//Saklamayı bitir -->
</script>
</head>
<body onLoad=tarayici()>
</body>
</html>
1. Yukarıda verilen kodları herhangi bir editör (NotePad gibi) yardımıyla yazıp
[Link] olarak kaydedin.
<html>
<head>
<title>MSIE tarayıcı kullanıyorsunuz</title>
</head>
<body>
<h3>Tarayıcınız Internet Explorer</h3>
</body>
</html>
<html>
<head>
<title>Netscpae tarayıcı kullanıyorsunuz</title>
</head>
<body>
<h3>Tarayıcınız Netscape Navigator</h3>
</body>
</html>
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 13
Ekrana Çıktı Ve Klavyeden Bilgi Giriş
Html üzerinden klavye aracılığı ile ziyaretçiden bilgi almayı ve herhangi bir
değişken vb. türde yazıların html e nasıl yazdırılacağını göreceğiz.
PROMPT ()
Biz bu satır ile ne yapmış olduk? Ziyaretçiden prompt komutu ile tarayıcısı
sorduk ve bunu var değişken tanımlama komutuyla tara değişkenine atadık.
Ziyaretçiden aldığımız bu bilgi sonucunda tara değişkeni ya ie yada nn değerini
alacaktır. Biz daha sonraki satırlarda bu değişkeni belli bir koşul koyarak kullanabiliriz.
Mesela daha önceki örneklerimizde olduğu gibi ie ise şu sayfayı aç nn ise şu sayfayı aç.
Bir öneri: Bu tip tarayıcı tanıma yöntemi oldukça yanlış bir yöntemdir. Çünkü ziyaretçiden alınan bilgi ile
bizim daha sonra kullandığımız koşul ifadeleri uyuşmayabilir. Bu yüzden kodumuz doğru çalışmaz.
14 :.
WRİTE()
Html dosyasına yazı yazdırma komutu ise write dır. Bu kodun yazım kurallarını
inceleyecek olursak ;
Şimdi prompt komutu ile write komutunu birleştirerek bir kod hazırlayalım. Bu
kodumuzda prompt aracılığıyla ziyaretçiye adını sorup ad değişkenine atıyoruz. Daha
sonra bu değişkeni write komutu yardımıyla ziyaretçiye Merhaba diyoruz. Şimdi
kodlara geçelim.
Örnek :
<html><head><title>Prompt , write örneği </title></head>
<body>
<!-- //Kodları eski tarayıcılardan gizliyoruz
var isim = prompt ("İsminizi Giriniz " , "Küçük harf veya büyük harf
kullanabilirsiniz" );
[Link] ("Merhaba " , isim , " !" );
// Saklamayı bitir -->
</script>
</body>
</html>
Biz aslında Html'de font kurallarını kullanarak yazı da yazdırabiliriz. Hiçbir kural
uygulamadığınızda tarayıcının standart (default) değerleri kullanılır. Örneğin, Merhaba
dedikten sonra alınan ismin bir alt satırda görüntülenmesini istiyorsak bunu
Javascript'e şu şekilde yaptırabiliriz (<br> türünde Html etiketlerinin tümünü
Javascript'e yaptırabilirsiniz).
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 15
KOŞUL VE DÖNGÜLER
Koşul Yapıları
IF (EĞER)
Javascript'te çoğu dilde olduğu gibi koşul yapısının kodu If (eğer) komutudur.
Yazılım şekli ise şu şekildedir.
If (a==b)
//koşul doğru ise ilk satır işleme konulur
// koşul doğru değilse ilk satırın altındaki komut satırı işleme konulur.
If (a==b)
{
// 1.işlem
//2. İşlem
...
...
}
16 :.
If ( a==b )
{
// şunları şunları yap
}
else
{
//değilse şunları yap
}
Yani örnekten de anlaşıldığı gibi if koşulu ile a ile b nin eşitliği karşılaştırılıyor.
Eğer doğruysa hemen altındaki kısım işleme konuluyor. Else ile yok değilse altındaki
kısmı işleme koy diyoruz.
If (a==b)
{
//şunları yap
}
if (a==c)
{
//şunları yap
}
else
{
//şunları yap
}
Else yapısı genel olarak bir karşılaştırma sonucunda cevap yanlış ise diğer
bütün durumlarda şu işi yap manasında kullanılır.
Örnek Uygulama 2:
<html>
<head>
<title>Koşul yapıları </title>
</head>
<body>
<script language="JavaScript">
<!-- //eski sürüm tarayıcılardan kodumuzu saklayalım
var gun = prompt ("Bugün günlerden ne ?" ,"lütfen küçük harf kullanınız");
if (gun=="pazar")
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 17
{
[Link] ("Bugün günlerden " , gun , " olduğuna göre hatfa sonundayız"
,"<br>")
[Link] ("<b>" , "İyi tatiller.." , "</b>")
}
else
{
[Link] ("Bugün günlerden pazar olmadığına göre tatil gününde değiliz
!" ,"<br>")
[Link] ("İyi çalışmalar..")
}
//saklamayı bitir-->
</script>
</body>
</html>
Döngü Yapısı
FOR DÖNGÜSÜ
for ( değişken_başlangıç_değerler1 , değişken_başlangıç_değeri2 ; döngü
sayısı ; değişecek_değişken_adı_ve_türü )
{ yapılması istenen işlemler }
Şimdi bunu tam bir örnekle daha da pekiştirelim. Varsalım ki elimizde bir
çarpım tablosu yapmak istiyoruz. Buna göre 5 sayısı için 1'den 10'a kadar sayıları bir
18 :.
tablo içerisinde vereceğiz. Şimdi bu durumda for döngüsüz 10 adet tablo yazmamız
gerekecekti fakat biz for döngüsü ile işlemi 1 satıra indirgeyeceğiz.
<html>
<head>
<title>for döngüsü</title>
</head>
<body>
<script language="JavaScript">
<!-- //eski sürüm tarayıcılardan kodumuzu saklayalım
var cevap=0;
for ( sayi=0 ; sayi>=10 ;);
{
sayi--;
var cevap = 5 * sayi ;
[Link]( "5 * " , sayi , " =" , cevap ,"<br>")
}
//saklamayı bitir-->
</script>
</body>
</html>
Burada gördüğünüz gibi işlem tek bir satıra ingirdendi. Şimdi de for
döngüsünün yapmak istediğimiz işlemlerde yetersiz kaldığı durumlarda
kullanabileceğimiz yapıları görelim.
Javascript kodu yazarken -programda bir önceki örnekte olduğu gibi- sayaç
değişkeninin her değeri için istediğiniz işlemi yapmasını istemeyebilirsiniz. Bunun için
while komutunu kullanırsınız ki bu Javascript'e "İstediğim işi şu şart sağlanıyorsa yap
!" demiş olursunuz. While döngüsünde for döngüsünden farklı olarak döngü
içerisindeki değişkenlerin tanımlanması gerekir. Şimdi yazım kurallarına bir göz atalım.
DO .. WHİLE YAPISI
Do ... while yapısı genel olarak bir döngünün yapısını eğer şart doğruysa tekrar
et manasındadır. Yani do ile başlangıçta hiçbir koşul olmadan işlem yapılır. Daha sonra
while şartı doğru ise tekrar do yapısında geri dönülür. Bunu bir örnek ile açıklamak
gerekirse;
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 19
Örneğin bir ticari siteniz var. İnsanlar sizden gelip istedikleri ürünleri satın
alıyorlar. Bir ürün için siparişlerini verdiler ve bizde bunun karşılığı olarak ücret +
kargo + kdv miktarını hesapladık ve müşterimize dedik ki istediğiniz ürün şu fiyata şu
gün elinizde olur. Bu hesaplamaların hepsini do yapısı ile yap dedik. Ve sonra sorduk
daha başka ürünlerde almak istiyor musunuz? İşte bu da while yapısı ile sorulur. Şayet
cevap evet ise do yapısı tekrarlanır değilse do döngü yapısında çıkılır.
While komutu ile şartı belirledikten sonra yapılan işlemin kesilmesi veya devam
etmesi otomatik hale gelmektedir. For döngüsü içerisinde de bu tür bir olayı break ve
contine ifadeleri ile gerçekleştiririz.
Javascript break ifadesini gördüğü anda döngü işlemini keser ve bir sonraki
komut satırını işleme koyar. Continue ifadesinde ise döngü break ifadesindeki gibi
kesilir fakat işleme konulan satır bir sonraki satır değildir. Continue'de döngü başına
dönülür.
20 :.
Örnek:
for ()
{işlem1; işlem2; break; }
Burada işlem2 ile verilen kısımda örnek olarak bir sorgu yapılabilir. Sorgu doğru
ise break ifadesine gelinir ve burada döngü kesilir.
for ()
{ işlem1; işlem2; continue;}
Burada yine işlem2 ile sorgu yapılırsa contine ifadesi ile döngünün devamı
sürdürülür.
Önemli : Break ve Continue ifadeleri her komutu kesmek veya devam ettirmek için kullanılamaz. Mesela bir
if (Eğer) ifadesi şart doğru değilse break ile kes denilemez. Sadece döngü içerisinde döngünün kesilmesi
veya devam ettirilmesi için kullanılabilir.
SWİTCH-CASE İFADESİ
Bu ifade genel olarak menü kullanımında veya sorgu işlemlerinde işe yarar.
Swicht ile ifade alınır case ifadesi ile işlemler sorgulanarak yapılır. Yazım kurallarına bir
göz atalım.
switch (parametreler)
{ case "ifade1" :
case "ifade2" :
... }
Bir örnek verelim. Burada web sayfamızdaki herhangi bir işlemde çıkıp çıkmak
isteyip istemediği soruluyor. Cevap evet ise işlem istenilen yönde yönlendiriliyor.
Cevap hayır ise döngüden çıkılmaktadır. Burada kendimizi ziyaretçinin klavyesinde
Caps Lock tuşuna basılı olup olmadığını önemsemiyoruz. Çünkü koşul ifademizi hem
küçük harf hem de büyük harfe göre yazıyoruz.
var sec;
sec = prompt ("Çıkmak istiyor musunuz " ,"Evet için E veya e , Hayır için H
veya h giriniz")
switch (sec)
{ case "e" : case "E" :
[Link] ("Tekrar hoşgeldiniz")
//yapılması istenen işlemler
case "h": case "H" :
[Link] ("Bizi tercih ettiğiniz çin teşekkürler")
break
//Çıkılması istendiği için döngüyü kesmek için break komutunu kullanıyoruz.
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 21
FONKSİYON KAVRAMI
Çoğu zaman Javascript kodunuzda bir işlemin birden fazla yapılması gerekebilir.
Hatta kimi zaman Javascript'e bir işlem yaptırmadan önce başka bir işlemi yaptırmak
istenebilir. İşte bu tür tekrarlanan işin yapılması için gerekli işlem ve komut gruplarına
Fonksiyon adı verilir. Fonksiyonlar genelde, A isimli gruptaki işlemleri yap oradan bir
değer al bunu B isimli gruba götür gibi işlemler için kullanılır. Bu tür komut sistemleri
Javascript'te en çok kullanılan komut türlerindendir. Fonksiyonun yazım kuralları şu
şekildedir:
<html>
<head>
<script language="JavaScript">
<!-- //eski sürüm tarayıcılardan kodu gizleyelim
function veri1(ilkveri)
{ var ilktoplam = (ilkveri * 30 )/100 ;
return ilktoplam ; }
function veri2 (ikinciveri)
{ var ikincitoplam = (ikinciveri * 45 )/100;
return ikincitoplam; }
-- >
</script>
</head>
<body>
<script language="JavaScript">
<!—
22 :.
var data1 = prompt ("Birinci miktarı giriniz" ,"rakam gir");
var data2 = prompt ("İkinci miktarı giriniz" , "rakam gir");
[Link] ("İlk işleminizin sonucu = " , veri1(data1) );
[Link] ("İkinci işlemin sonucu = " , veri2(data2) );
-- >
</script>
</body>
</html>
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 23
NESNELER VE ÖZELLİKLERİ
Günümüzde bilişim Teknolojileri ile ilgilenen hemen herkesin duyduğu bir terim
var: Nesneye Yönelik Programlama (OOP). Nedir bu Nesneye Yönelik Programlama?
Bu tip programlamada kullanılan her öğe bir nesne olarak kabul edilir. Bu nesnelerin
özelliklerini kullanarak onları değiştirerek program yazılır. Javascript'te bu tür bir
programlama dilidir. Örneğin webde sörf yaparken herkesin karşısına çıkan formlar
birer nesnedir. Bu nesnelerin tepkiye göre cevap vermesi gibi özellikler de onun yani
nesnenin özellikleridir.
Window Nesnesi
¾ Url_adı :
Örnek :
[Link]("[Link]
veya ;
24 :.
[Link]("[Link]")
¾ Pencere_adı :
Örnek :
[Link]("[Link]" , "ana");
¾ Pencere_özellikleri :
Bu özellikte adından belli olduğu ölçüde pencerenin özellikleri ile ilgilidir. Bir
pencerenin değiştirilebilir özellikleri şunlardır :
o status : Tarayıcıların en alt kısmında hangi dosyanın yüklendiği ile ilgili bilgi
veren kısımdır.
o left : Açılacak olan pencerenin ekranın sol tarafından kaç piksel uzaklıkta
olacağını belirler.
Eğer pencere özellikleri kısmında değişmesini istemediğiniz bir özellik varsa onu
yazmanıza gerek yoktur. Bu değerler tarayıcının standart(default) değerlerinden alınır.
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 25
Örnek:
Şimdi bir pencere açalım. Açtığımız pencerede dosya, düzen ve ileri, geri tuş
takımı olmasın. Pencerenin boyutları 200x300 piksel olsun. Şimdi buna göre kodumuz:
[Link]
("[Link]
"webteknikleri" ,
" menubar=no,
toolbar=no,
scrollbars=yes,
location=yes,
width=200, heigt=300";)
Wİ[Link]İ[Link]
if ([Link] == "http:" )
{ [Link] ("Bu belge Internet'ten geliyor.") }
else
{ [Link] ("Bu belge sabit diskten geliyor") }
WİNDOW.Hİ[Link]
Window'un histrory özelliği ile bir önceki sayfaya erişim sağlanabilir. Örneğin
kullanıcı herhangi bir formu doldurmadı ve işlem yapılamadı bu durumda bir hata
mesajı ile kullanıcıyı uyardıktan sonra history nesnenisin kullanarak bir önceki sayfaya
kullanıcıyı gönderebilirsiniz. Bunun için gerekli kod yazımı şu şekildedir.
[Link](-1)
26 :.
STATUS BAR KULLANIMI
Status bar window nesnesinde belirttiğimiz gibi tarayıcıların en alt kısmında yer
alan hangi dosyaya gidileceği veya yüklendiği ile ilgili bilgi veren kısımdır.
Status barı değiştirmek için şu kodları yazmalıyız.
Bu şekilde kullandığımız bir status kodu ile sayfa açık kaldığı sürece
Webteknikleri'nden Merhaba ! yazısı karşımızda olacaktır.
Tarayıcı Nesnesi
<html>
<head><title>Tarayıcı Özellikleri</title></head>
<body>
<script language="javascript1.2">
<!—
[Link]("Şu anda kullandığınız tarayıcının özellikleri :" , "<br>");
[Link]([Link] + [Link] +
[Link] + [Link] ) ;
-->
</script>
</body>
</html>
Çerçeve tekniği bir web sayfası üzerinde birden fazla web sayfası
görüntülenmek istendiğinde kullanılır. Daha ayrıntılı bilgi için HTML adlı bölümümüze
bakınız.
Javascript açısından her bir çerçeve bir pencere sayılır. Bunların içeriğini kontrol
etmek için belli komut stilleri vardır. Şimdi onları görelim:
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 27
o Top : En üst pencere (Yani tarayıcının kendisi)
<html>
<head><title>Frame (Cerceve)</title></head>
<!-- frames -->
<frameset cols="50%,*">
<frame name="sol" src="[Link]">
<frame name="sag" src="[Link]">
</frameset>
</html>
Bu sayfayı [Link] olarak kaydedin.
<html>
<head><title>Sol Frame</title></head>
<body>
<script language="javascript1.2">
<!—
[Link][0].[Link]("Herhangi bir hesaplama [Link] icin
kullanilacak kod turu", "<br>" , "SOL taraf icin");
-->
</script>
</body>
</html>
<html>
<head><title>Sag Frame</title></head>
<body>
<script language="javascript1.2">
28 :.
<!—
[Link][1].[Link]("Herhangi bir hesaplama [Link] icin
kullanilacak kod turu", "<br>" , "SAG taraf icin" );
-->
</script>
</body>
</html>
Form Nesnesi
Şimdi biz bu kodda "Form Unsurları" diye bir şeyden söz ettik. Bu form
unsurları ziyaretçiden nasıl bilgi alınacağını belirleyen unsurlardır. Bunlar bir metin
alanı veya aşağı düşmeli bir menü olabilir. Form etiketi içerisindeki tüm unsurlar
element adlı dizi-değişken içerisine yazılırlar ve form unsurları kullanılırken bu tip bir
atıfta bulunmanız gerekir.
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 29
TEXT ALANI
<input type="text">
Buraya kadar işimiz Html ile hallettik. Şimdi bu form nesnesinin özelliklerini
Javascript aracılığıyla nasıl değiştirilebileceğini görelim.
o name :ismi
Şimdi bir örnek verelim (bu örnek bir önceki form içindir).
[Link][0].lenght=20
ŞİFRE ALANI
Bu alanlar şifreli bilgi almak için kullanılır. Bu alana bir bilgi girildiğinde
karakterler gözükmez onun yerine asteriks * işareti görülür.
Örnek:
<form action="[Link] name="mail">
30 :.
<input type="Password" name="sifre" >
</form>
BUTONLAR
Form unsuru olarak iki tür buton vardır. Bunlar form unsurlarını form görevine
göre göndermeye veya almaya yönelik Gönder (Submit) düğmesi bir diğeri ise Form
unsurlarının tümünün ilk halini almasını sağlayan Sil (Reset) düğmesidir. Şimdi
bunların nasıl kullanıldıklarını görelim.
<HTML>
<HEAD>
<TITLE>Radio</TITLE>
<SCRIPT LANGUAGE = "JavaScript1.2">
function sorgu (secim)
{var deger = null
for (var i=0; i<[Link]; i++)
{if (secim[i].checked)
{ deger = secim[i].value
break } }
return deger }
</SCRIPT>
</HEAD>
<BODY>
<FORM name="form1"> <p>
<input type=radio name="firma" value="Bilemediniz Yazilim">Microsoft</p>
<p><input type=radio name="firma" value="Bilemediniz Yazilim">Borland</p>
<p><input type=radio name="firma" value="BilemedinizYazilim">Adobe</p>
<p><input type=radio name="firma" value="Tebrikler Bildiniz">Copmaq</p>
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 31
<input type=button value="Bunlardan hangisi bilgisayar ureticisidir"
onClick="alert(sorgu([Link]))">
</FORM>
</BODY>
</HTML>
Gördüğünüz gibi bu form unsuruna da(öğesi) diğer form unsurları gibi aynı
şekilde ulaşılır. Fakat diğerlerinden farklı olarak burada checked(seçilmiş) yardımcı
etiketini kullandık. Burada Javascript ile bir döngü oluşturarak hangi nesnenin
seçili(checked) olduğunu kontrol ediyoruz. Ve alert ile sorulan sorunun cevabının
doğruluğunu ziyretçiye bildiriyoruz.
SELECT UNSURU
<HTML>
<HEAD>
<title>Select</title>
<SCRIPT LANGUAGE = "JavaScript1.2">
function secim(secilen)
{ return [Link][[Link]].value }
</SCRIPT>
</HEAD>
<BODY>
<FORM name="soru">
<p><SELECT NAME="firma">
<OPTION value="Bilemediniz Yazilim">Microsoft</OPTION>
<OPTION value="Bilemediniz Yazilim">Borland</OPTION>
<OPTION value="Bilemediniz Yazilim">Adobe</OPTION></P>
<OPTION value="Tebrikler Bildiniz">Compaq</OPTION></P><br>
<input type=button value="Bunlardan hangisi bilgisayar ureticisidir"
onClick="alert(secim([Link]))">
</FORM>
</BODY>
</HTML>
32 :.
OLAYLAR
Ziyaretçiye sunulan bir web sayfası üzerinde ziyaretçinin yaptığı her tür hareket
bir bağlantıyı tıklaması , bir resmin üzerine gelmesi , resmin üzerinde ayrılması , bir
formu yanlış doldurup hataya yol açması hep bir olaydır.
onClick
Web sayfası üzerinde bir nesnenin mosue ile üzerine tıklanması sonucu onClick
olayı gerçekleşir. Olayın gerçekleşmesi için nesneni tıklanıp bırakılması gereklidir. Yani
mouse tuşuna basıldığında onClik olayı gerçekleşmiş olmaz. onClick olayı tuşa basılıp
bırakıldıktan sonra gerçekleşir. Bağlantılar, resimler, form düğmeleri tıklanabilecek
nesneler arasındadır. OnClick yönlendiricisine bu durumda ne yapacağını Html
etiketleri arasında bildirmeniz gerekir.
Örnek:
<html><head><title>onClick</title>
<script language="javascript1.2">
<!—
function merhaba()
{alert ("beni tikladiniz"); }
-->
</script></head>
<body>
<input type="button" name="tikla" value="tikla" onClick=merhaba()>
</body>
</html>
Burada yaptığımız işlem html etiketleri arasında yer verdiğimiz bir butona
tıklama (onClick) ile ne yapacağını merhaba fonksiyonuna git diyoruz. Fonksiyonda
ekrana bir uyarı ile beni tıkladınız diye bir uyarı mesajı geçiyor.
OnDblClick olayı da onClick olayı ile yapı olarak aynıdır. onClick'ten farkı
nesneye çift tıklandığında çalışmasıdır. Diğer yöntemler onClick ile aynıdır.
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 33
onMouseOver , onMouseOut
Örnek:
<html>
<head><title>onMouseOver ve onMouseOut </title>
<script language="javascript1.2">
<!—
function uzerinde()
{[Link]="Tıklayın ve [Link] adresine gidin" }
function disinda()
{[Link]="[Link] baglantisina tıklayın" }
-->
</script></head>
<body>
<a href="[Link] onMouseOver = uzerinde()
onMouseOut =disinda()> [Link] </a>
</body>
</html>
34 :.
<a href="[Link]" onMouseOver="altavista()" onMouseOut =
"altavistasil()">
Altavista</a><br>
<a href="[Link]" onMouseOver="yahoo()"
onMouseOut="yahoosil()">Yahoo</a><br>
<a href="[Link]" onMouseOver="hotbot()"
onMouseOut="hotbotsil()">Hotbot</a><p>
<form name="web">
<input type="text" name="mesaj" size="50">
</form>
</body>
</html>
onSubmit
Bunu örnek bir kod ile açıklayalım. Html sayfamızda body etiketleri arasında
doldurulmasını istediğimiz bir form var ve ilgili kodun başlangıcı şöyle :
function dogrula()
{ confirm ("Formu düzgün doldurduysanız OK'i tıklayınız'); }
onReset
Örnek:
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 35
<html>
<head><title>onReset</title>
<script language="javascript1.2">
<!—
function sil()
{ return confirm('Silmek istediginize emin misiniz?'); }
-->
</script>
</head>
<body>
<form onReset="return sil()">
<input type="text" name="mail">
<input type="reset" value="sil">
</form>
</body>
</html>
onChange
<html>
<head><title>OnChange</title>
<script language="javascript1.2">
<!—
function degisti()
{ [Link]("[Link]"); }
-->
</script>
</head>
<body>
<form method="post">
<p><select name="degistir" size="1" onChange="degisti()">
<option>Adresi tikla
<option>Altavista
</select>
</form>
</body>
36 :.
</html>
onLoad, onUnLoad
Örnek:
<html><head><title>onLoad onUnLoad</title>
<script language="javascript1.2">
<!—
function hosgeldiniz()
{
alert("Web Sitemize Hosgeldiniz")
}
function gulegule()
{
alert("Iyi sorfler..")
}
-->
</script>
</head>
<body onLoad="hosgeldiniz()" onUnload="gulegule()">
</body>
</html>
onError, onAbort
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 37
kaynaklanır. Çünkü bu durumda resim tam yüklenmemiştir. Bu da ziyaretçinin resim
üzerinde tıklayacağı yerlerin yorumlanmamasını doğurur.
Örnek:
<img src="[Link]" onError="alert("Resim dosyası tam olarak
yüklenemedi')">
Ziyaretçi resimlerin yüklenmesi çok uzun sürüp yüklemeyi stop(dur) tuşu ile
kestiyse bu durumda onAbort olayı gerçekleşir. Bunun sonucu olarak ziyaretçiye bir
hata mesajı verebilirsiniz. Bu durum daha önce bahsettiğimiz image-map ler içindir.
<html>
<head><title>Layer</title></head>
<body>
<div id="denem" style="position:absolute ; left:100px ; top:200px;
width:300px ; height:400px ; visibility:visible" >
Su anda bir katman(layer)in icerisindeyim
</div>
</body>
</html>
Layer oluşturmak istediğinizde <div> etiketi ile başlar </div> etiketi ile
kodunuz tamamlarsınız. Şimdi katman özelliklerine geçelim :
38 :.
o id : Katmanın ismi
katman_adı.[Link]ğiştirilmesi_istenen_özellik=yeni_değer;
Örnek :
[Link]=50px;
document.katman_adı.değiştirilmesi_istenen_özellik=yeni_değer;
Örnek :
[Link]=50px;
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 39
</script></head>
<body onLoad="tara()">
<div id="katman" style="position:absolute ; left:400px; top:10px">
Bu katmanin yeri degisecek
</div>
<p><p><p>
<a href="javascript:hareket1()">Burayı tıklayın ve katmanınız 100x100'e
gitsin</a><br>
<a href="javascript:hareket2()">Burayi tıklayın ve katmanınız 300x300'
gitsin</a>
</body></html>
katman_adı.[Link]="visible"
katman_adı.[Link]="hidden"
document.katman_adı.visibility="show"
document.katman_adı.visibility="hide"
<html><head><title>Katman</title>
<script language="javascript1.2">
<!—
function sakla()
{ var tarayici= [Link]
if (tarayici=="Netscape") [Link]="hide"
if (tarayici=="Microsoft Internet Explorer")
[Link]="hidden" }
function goster()
{ var tarayici= [Link]
40 :.
if (tarayici=="Netscape") [Link]="show"
if (tarayici=="Microsoft Internet Explorer")
[Link]="visible" }
-->
</script></head>
<body>
<div id="katman" style="position:absolute ; left:400px; top:10px">
Bu katmanin tikladiginizda yok olacak
</div><p><p><p>
<a href="javascript:sakla()">Burayi tiklayin ve katmaniniz yok olsun</a><br>
<a href="javascript:goster()">Burayi tiklayin ve katmaniniz geri gelsin</a>
</body></html>
Seval ÖZBALCI [Link]@[Link] - Internet Programlama Ders Notu - CBÜ Turgutlu MYO .: 41