Professional Documents
Culture Documents
JAVASCRIPT
‹BRAH‹M
ÇEL‹KB‹LEK
KODLAB 11
JAVASCRIPT
‹BRAH‹M ÇEL‹KB‹LEK
ISBN 978-605-4205-11-0
Yay›nc›l›k Sertifika No: 13206
Bu kitab›n bütün yay›n haklar› Kodlab Yay›n Da¤›t›m Yaz›l›m ve E¤itim Hizmetleri
San. ve Tic. Ltd. fiti.’ne aittir. Yay›nevimizin yaz›l› izni olmaks›z›n k›smen veya ta-
mamen al›nt› yap›lamaz, kopya çekilemez, ço¤alt›lamaz ve yay›nlanamaz.
‹brahim Çelikbilek
1980 Kars do¤umlu. 2002 y›l›nda F›rat Üniversitesi T.E.F bitirdi. Çeflitli e¤itim ku-
rulufllar›nda yaz›l›m uzmanl›¤› ile ilgili dersler verdi. 2005 y›l›nda Suflehri Atatürk
Endüstri Meslek Lisesine Bilgisayar Ö¤retmeni olarak atand›. ASP.NET ve C# ko-
nular›nda seminerler verdi ve makaleler yazd›. Web programlama alan›nda birçok
uygulama gelifltirdi.
+JAVASCRIPT-kunye 7/30/09 9:33 PM Page iv
iv
+JAVASCRIPT-kunye 7/30/09 9:33 PM Page v
ÖNSÖZ
Bu kitapta JavaScript’in temelleri ve ileri düzey uygulamalar en basit seviyeden bafl-
lanarak ad›m ad›m ayr›nt›l› bir flekilde anlat›lm›flt›r. Konular› dikkatli bir flekilde ta-
kip ederseniz JavaScript’i tam anlam›yla ö¤renebilir ve uygulama gelifltirebilirsiniz.
Konu anlat›mlar›nda bol bol örnekler bulunmakta ve bu örneklerin konular› daha iyi
anlaman›z için çok önemli oldu¤unu düflünüyorum.
Gelifltirdi¤iniz web sayfalar›na etkileflim katmak için bolca JavaScript kodu yazmal›-
s›n›z. Kesinlikle haz›r kod kullanmay›n, JavaScript ile ilgili merak etti¤iniz tüm ko-
nular bu kitapta mevcuttur. JavaScript yard›m›yla kullan›c› hareketlerine tepki göste-
ren dinamik sayfalar gelifltirebilirsiniz.
Ayr›ca DHTML, AJAX uygulamalar›n›n yap› tafl› JavaScript’tir. Bu kitapta DOM
nesnelerinden ayr›nt›l› bir flekilde bahsedilmifltir. DOM nesneleri anlat›l›rken kafa ka-
r›fl›kl›¤›na neden olmamak için sadece W3C DOM modeli kullan›lm›flt›r. DHTML ve
AJAX uygulamalar› gelifltirmek için JavaScript bilmeniz flartt›r.
JavaScript ile ilgili ya da programlama konular› ile ilgili sorular›n›z› www.kodlab.com
sitesinde bulunan yazara sor k›sm›ndan bana iletebilirsiniz.
Faydal› olmas› dile¤iyle...
‹brahim Çelikbilek
+JAVASCRIPT-kunye 7/30/09 9:33 PM Page vi
vi JAVASCRIPT
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page vii
‹Ç‹NDEK‹LER
1 JAVASCRIPT’E G‹R‹fi 1
Javascript Kodlar›n› HTML Sayfas› ‹çerisine Eklemek 3
Kodlar Aras›na Aç›klama Sat›rlar› Eklemek 6
Kodlar›m›z› Eski Sürüm Taray›c›lardan Saklama 7
Sayfa Aç›l›fl›nda Javascript Kodlar›n›n Çal›flt›r›lmas› 8
2 JAVASCRIPT TEMELLER‹ 9
De¤iflkenler 9
De¤iflken Tan›mlarken Dikkat Etmeniz Gereken Kurallar 10
De¤iflkenlere De¤er Atamak 11
Veri Türleri 11
number 12
boolean 12
string 12
Diziler (Array) 13
undefined 13
null 14
Veri Türü Dönüflümleri 15
3 OPERATÖRLER 17
Atama Operatörleri 17
Aritmetiksel ‹fllemler ve String (+) 18
De¤er Artt›rma ve Azaltma Operatörleri 19
Karfl›laflt›rma Operatörleri 20
Mant›ksal Operatörler 21
Typeof Operatörü 22
fiarta Ba¤l› Komut Çal›flt›rma (Ternary Operatörü) 22
‹fllem Önceli¤i 23
Javascript ile Sayfaya HTML ‹çeri¤i Yazmak 24
‹ki Metin Aras›nda Boflluk B›rakma ve
Sayfa Ak›fl›n› Bir Alt Sat›ra ‹ndirme, Tafl›ma 26
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page viii
viii JAVASCRIPT
‹Ç‹NDEK‹LER ix
splice( ) 42
Dizi Eleman›n› Silmek (Dizi ‹çinden Koparmak) 42
Diziye Eleman Eklemek 43
Ayn› Anda Diziden Eleman Silmek ve Eklemek 43
concat( ) 45
pop( ) 46
shift( ) 46
delete Operatörü 47
Dizi De¤iflkenleri ‹çerisindeki Elemanlar› S›ralamak ‹çin
Kullan›lan Metodlar 48
sort( ) 48
reverse ( ) 51
Dizi De¤iflkenleri ‹çerisinde Eleman Aramak ‹çin
Kullan›lan Metodlar 51
indexOf ( ), lastindexOf 51
Dizi De¤iflkenlerin ‹çindeki Nesnelerin Metinsel Veriye
Dönüflümü ile ‹lgili Metodlar 52
toString(), join() 52
Çok Boyutlu Diziler 53
5 KOfiUL ‹FADELER‹ VE DÖNGÜLER 55
Koflul ‹fadeleri 55
if ‹fadesi 55
if else Yap›s› 56
else if Yap›s› 57
switch ‹fadesi (Durum-Koflul) 59
Döngü ‹fadeleri 61
for Döngüsü 61
while Döngüsü 64
do..while Döngüsü 66
Döngülerde Kullan›lan Deyimler 67
break Deyimi 67
continue Deyimi 68
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page x
x JAVASCRIPT
6 FONKS‹YONLAR 71
Fonksiyon Tan›mlama 72
Fonksiyonlarda Geriye De¤er Döndürme 77
Rekursive Fonksiyonlar 80
Haz›r Fonksiyonlar 81
eval() 81
isFinite() 83
isNaN( ) 83
escape ( ) ve unescape( ) 83
parseint( ) ve parseFloat( ) 84
String( ) ve Number( ) 85
De¤iflkenlerin Geçerli Olduklar› Alan 86
7 OLAYLAR (EVENTS) 89
Eventhandler (Olay Yönlendiricileri) 89
onLoad, onUnLoad Olaylar› 90
onClick, onDbClik Olaylar› 92
onSubmit Olay› 94
onReset Olay› 95
onChange Olay› 96
onFocus Olay› 98
onBlur Olay› 99
onError, onAbort Olaylar› 100
onSelect Olay› 102
onResize Olay› 103
onKeyDown Olay› 103
onKeyPress Olay› 107
onKeyUp Olay› 108
onMouseDown Olay› 109
onMousemove Olay› 109
onMouseout Olay› 109
onMouseOver Olay› 109
onMouseUp Olay› 109
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page xi
‹Ç‹NDEK‹LER xi
xii JAVASCRIPT
input 148
lastindex 149
lastMatch 150
leftContext 150
rightContext 151
Nesne Metodlar› 152
compile () 152
exec () 152
test() 153
search () 155
match () 155
replace() 156
split() 156
Düzenli ‹fade Olufltururken Kullan›lan Özel Karakterler 157
Konum Belirleyen Karakterler 157
^ Karakteri 157
$ Karakteri 157
\b Karakteri 158
\B Karakteri 158
?= Karakteri 159
?! Karakteri 160
Gözükmeyen Karakterleri Düzenli
‹fade ‹çinde Temsil Eden Karakterler 160
Di¤er Özel Karakterler 161
Tekrarlama Miktarlar›n› Ayarlayan Karakterler 164
Grup Oluflturma ve Grup ‹çi Karakterler 166
e-mail Do¤rulama ‹fllemleri 167
Tarih Do¤rulama ‹fllemleri 170
11 TARAYICI NESNELER‹ 177
window Nesnesi 177
Nesne Özellikleri 177
defaultStatus 177
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page xiii
‹Ç‹NDEK‹LER xiii
name 181
outerHeight, outerWidth 181
closed 181
Nesne Metodlar› 181
Open ( ) 181
URL 181
NAME 181
close ( ) 185
focus ( ) 189
blur( ) 189
alert( ) 191
prompt( ) 192
Confirm( 193
resizeBy( ) 194
resizeTo( ) 194
moveBy( ) 195
moveTo( ) 196
ScrollBy( ) 197
ScrollTo( ) 198
navigator Nesnesi 198
Nesne Özellikleri 198
appCodeName 198
appName 198
appVersion 198
browserLanguage 199
cookieEnabled 199
3. screen Nesnesi 200
Nesne Özellikleri 200
availHeight 200
availWidth 200
Height 200
Width 201
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page xiv
xiv JAVASCRIPT
colorDepth 201
history Nesnesi 202
Nesne Özellikleri 202
length 202
Nesne Metodlar› 202
back() 202
forward() 202
go() 203
location Nesnesi 204
Nesne Özellikleri 205
hash 205
href 207
search 208
protocol 208
pathname 209
Nesne Metodlar› 210
assign( ) 210
reload( ) 210
replace( ) 211
document Nesnesi 211
Nesne Özellikleri 211
anchors[] 211
links[] 212
body 213
title 215
Nesne Metodlar› 216
getElementById() 216
getElementByName() 217
getElementByTagName() 219
write(), wr›teln() 221
Event Nesnesi 221
Nesne Özellikleri 221
altKey Özelli¤i 221
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page xv
‹Ç‹NDEK‹LER xv
13 FORMLAR 245
<form> Nesnesi 246
method 246
elements[] 247
Form Nesnesi Metodlar› 249
submit() 249
reset() 251
<INPUT> Nesnesi 252
Form Elemanlar› (Nesneleri) ‹çin Ortak Özellikler 253
type 253
›d 253
name 253
disabled 254
accesskey 255
tabindexS 257
Form Elemanlar› (Nesneleri) 257
text (Metin Kutusu) Nesnesi 257
value Özelli¤i 257
text Nesnesi Özellikleri 258
size Özelli¤i 258
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page xvi
xvi JAVASCRIPT
‹Ç‹NDEK‹LER xvii
14 ÇERÇEVELER 291
frameset Nesnesi 291
frameset Nesnesinin Özellikleri 292
id 292
cols 292
rows 294
frameborder 296
border 296
bordercolor 296
frame Nesnesi 297
noframes Etiketi 301
iframe Nesnesi 302
15 ÇEREZLER 307
Çerez Oluflturma 307
Çerezi Okumak 309
+JAVASCRIPT-icindekiler 7/30/09 9:34 PM Page xviii
xviii JAVASCRIPT
+JAVASCRIPT-BOLUM1 7/30/09 9:20 PM Page 1
JAVASCRIPT’E
1
G‹R‹fi
Javascript Kodlar›n› Kodlar›m›z› Eski Sürüm
HTML Sayfas› ‹çerisine Eklemek 3 Taray›c›lardan Saklama 7
Kodlar Aras›na Sayfa Aç›l›fl›nda Javascript
Aç›klama Sat›rlar› Eklemek 6 Kodlar›n›n Çal›flt›r›lmas› 8
2 JAVASCRIPT
Yukar›daki yap›da;
<head></head>: Sayfa bafll›¤›. Bu etiketler aras›nda css, title, meta
+JAVASCRIPT-BOLUM1 7/30/09 9:20 PM Page 3
JAVASCRIPT’E G‹R‹fi 3
</script>
4 JAVASCRIPT
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=iso-8859-1” />
<title>Untitled Document</title>
<script type=”text/javascript” language=”javascript”>
// Bu kısıma kodlar yazılacak...
</script>
</head>
JAVASCRIPT’E G‹R‹fi 5
<body>
<input type=”Button” value=”tıkla”
onclick=”alert(‘merhaba’)” />
</body>
6 JAVASCRIPT
JAVASCRIPT’E G‹R‹fi 7
Örnek
8 JAVASCRIPT
Örnek
<script type=”text/javascript”>
<!--
alert(“Mesaj1”)
// Yukarıdaki kod herhangi bir fonksiyon içerisine
// yazılmadığından sayfa yüklenmeden önce çalışacak
function goster()
{
alert(“Mesaj2”);
// Yukarıdaki kod goster() isimli fonksiyon çağrıldığında â
çalışacak
}
-->
</script>
+JAVASCRIPT-BOLUM2 7/30/09 9:20 PM Page 9
JAVASCRIPT
2
TEMELLER‹
De¤iflkenler 9 boolean 12
De¤iflken Tan›mlarken Dikkat string 12
Etmeniz Gereken Kurallar 10 Diziler (Array) 13
De¤iflkenlere De¤er Atamak 11 undefined 13
Veri Türleri 11 null 14
number 12 Veri Türü Dönüflümleri 15
De¤iflkenler
De¤iflkenlerin olmad›¤› bir programlama dili olamaz. De¤iflken isimleri
bilgi saklamak için bellekte ayr›lan alanlara verilen isimlerdir. De¤iflken-
leri içi bofl kutular gibi düflünebilirsiniz ve bu kutular›n birer ad› vard›r.
De¤iflkenin;
Burada de¤iflkenin ad› ve veri türü belirlenmifl ve daha sonra de¤er atan-
m›flt›r.
+JAVASCRIPT-BOLUM2 7/30/09 9:20 PM Page 10
10 JAVASCRIPT
De¤iflken Tan›mlarken
Dikkat Etmeniz Gereken Kurallar
1. De¤iflken isimleri harf ya da _ (alt çizgi) karakterleri ile bafllamal›d›r.
De¤iflken isimleri numeric bir de¤erle bafllayamaz daha sonra say› içe-
rebilir. De¤iflken isimlerinde Türkçe karakterler ve boflluk karakteri kul-
lan›lmaz.
ad doğru
adı yanlış
123 yanlış
a2 doğru
_2a doğru
JAVASCRIPT TEMELLER‹ 11
Örnek
Veri Türleri
Yukar›daki örneklerden anlafl›laca¤› gibi Javascript’te de¤iflkenler ta-
n›mlan›rken herhangi bir veri türü belirtilmez, aksine de¤iflkene veri
atand›¤›nda javascript taraf›ndan de¤iflkenin veri türü belirlenir. Javasc-
ript’te bir de¤iflkene tüm veri türlerlerinde bilgi atanabilir. Program ak›-
fl›nda bir de¤iflkenin veri türü içerisine atad›¤›m›z veriye göre otomatik
olarak de¤iflir.
Örnek
var ad=55;
// ad değişkeninin veri türü number olacaktır.
ad=”can”
// ad değişkeninin veri türü içerisine string bir değer
atandığından stringe çevrildi
+JAVASCRIPT-BOLUM2 7/30/09 9:20 PM Page 12
12 JAVASCRIPT
number
Say›sal veri türüdür. Tamsay› ve ondal›kl› say›lar› tan›mlamak için kul-
lan›l›r. 8 (octal) ve 16 (hexadecimal) tabanl› say›lar› da number ile ta-
n›mlayabilirsiniz. 8 tabanl› say›lar› tan›mlamak için say›n›n bafl›na 0, 16
say› taban›ndaki say›lar› tan›mlamak için say›n›n bafl›na 0x konulur.
Örnek
16 say› taban›nda 0-9 aras› rakamlar ve A-F aras› harfler kullan›l›r. Say-
fa tasarlarken renklerin hexadecimal kodlamalar›n› kullanaca¤›m›zdan
Javascript’te bir de¤iflkeni 16 say› taban›nda bir say› olarak tan›mlama-
m›z iflimizi kolaylaflt›r›r.
boolean
Mant›ksal veri türüdür. De¤iflkenin de¤eri true (do¤ru) ya da false
(yanl›fl) olabilir. true ya da false kelimeleri küçük harfle yaz›lmad›r.
E¤er küçük harfle yaz›lmazsa javascript bunlar› de¤iflken olarak alg›la-
yacakt›r. Boolean veri türü karfl›laflt›rma ifllemlerinde çokça kullan›l›r.
Örnek
str›ng
Karakter katarlar› (metin, metin gruplar›) string olarak tan›mlanabi-
lir. Burada flunu belirteyim; say›sal de¤erleri de string olarak tan›mlaya-
+JAVASCRIPT-BOLUM2 7/30/09 9:20 PM Page 13
JAVASCRIPT TEMELLER‹ 13
Örnek
<script language=”javascript” type=”text/javascript”>
var a=”hasan”;
var soyadi=”can”;
var sinif=”11A”;
var deger=”1231”
// deger değişkeni içerisindeki 1231 javascript tarafından
// karakter katarı olarak algılanır.
var adi=’efe’;
// Bir değişkene string bir değer atanırken ‘’ tek tırnak
kullanılabilir.
</script>
Diziler (Array)
Bu veri türü, bir isim alt›nda toplanm›fl olan bir grup veriyi s›ral› bir fle-
kilde saklamak için kullan›l›r.
Örnek
undef›ned
E¤er bir de¤iflkeni var sözcü¤ü ile tan›mlay›p de¤er atamadan b›rak›r-
san›z (daha önceden biliyoruz Javascript’te veri tipleri de¤er atan›nca
belirlenir) bu durumda de¤iflkenin veri tipi undefined (tan›mlanmam›fl)
olacakt›r.
Örnek
var adi;
var soyadi;
document.write(adi);
+JAVASCRIPT-BOLUM2 7/30/09 9:20 PM Page 14
14 JAVASCRIPT
Örnek
var a=5;
var b;
document.write(a*b);
null
Yukar›da bir de¤iflkene de¤er atamad›¤›m›zda ve bu de¤iflkeni deyim,
ifade, formül içerisinde kulland›¤›m›zda hata verdi¤ini görmüfltük. E¤er
kulland›¤›m›z de¤iflkenin bir bafllang›ç de¤eri yoksa o zaman null veri
türünü kullanabiliriz
Örnek
Sonuç olarak c=25 olacakt›r. Çünkü null veri türüne sahip olan a de¤ifl-
keni ile number veri türüne sahip olan b de¤iflkeni toplan›rken, javasc-
ript a de¤iflkenine atanan null de¤erini 0 de¤erine dönüfltürür. (a=0)
+JAVASCRIPT-BOLUM2 7/30/09 9:20 PM Page 15
JAVASCRIPT TEMELLER‹ 15
Örnek
Sonuç olarak c=”abc” olacakt›r. Çünkü null veri türüne sahip olan a de-
¤iflkeni ile bir karakter katar› aras›nda birlefltirme ifllemi yap›ld›¤› için a
de¤iflkeni s›f›r uzunlukta bir de¤ere dönüfltürülür: (a=””)
Örnek
Örnek
16 JAVASCRIPT
OPERATÖRLER
3
Atama Operatörleri 17 fiarta Ba¤l› Komut Çal›flt›rma
Aritmetiksel ‹fllemler ve (Ternary Operatörü) 22
String (+) 18 ‹fllem Önceli¤i 23
De¤er Artt›rma ve Javascript ile Sayfaya
Azaltma Operatörleri 19 HTML ‹çeri¤i Yazmak 24
Karfl›laflt›rma Operatörleri 20 Karakter Katarlar›n›n Biçimlerini
Mant›ksal Operatörler 21 De¤ifltirme (String Metodlar›) 29
Typeof Operatörü 22
Atama Operatörleri
Karakter Görevi
= De¤iflkene de¤er atamak için kullan›l›r.
Örnek
a= 7 , a=”as”
+= Birikimli toplama, a+=1 ifadesi a=a+1 fleklindeki ifadenin
k›salt›lm›fl›d›r.
Örnek
a = 2 ise a + = 5 à a= 7 olur.
-= Birikimli ç›karma, a-=1 ifadesi a = a - 1 fleklindeki ifadenin
k›salt›lm›fl›d›r.
Örnek
a = 2 ise a - = 5 à a= -3 olur.
+JAVASCRIPT-BOLUM3 7/30/09 9:21 PM Page 18
18 JAVASCRIPT
Karakter Görevi
*= Birikimli çarpma, a*=1 ifadesi a = a * 1 fleklindeki ifadenin
k›salt›lm›fl›d›r.
Örnek
a = 2 ise a*=5 à a= 10 olur.
/= Birikimli bölme, a/ =5 ifadesi a = a / 5 fleklindeki ifadenin
k›salt›lm›fl›d›r.
Örnek
a=8 ise a/=2 à a=4 olur.
%= Birikimli kalan bulma. Sa¤daki de¤eri soldakine böler ve
kalan› verir.
Örnek
a=8 ise a%=3 à a=2 olur.
Aritmetiksel ‹fllemler ve
Str›ng (+)
Karakter Görevi
+ String ifllemler için öncelikli kullan›l›r. String ifllemlerde birlefltirme,
matematiksel ifllemlerde toplama yapar.
- Ǜkarma ifllemi yapar.
* Çarpma ifllemi yapar.
/ Bölme ifllemi yapar.
% Mod ifllemi yapar. Bir bölümden oluflan kalan› verir.
Örnek
<script language=”javascript” type=”text/javascript”>
document.write(34%3);
</script>
34 say›s› 3 bölündü ve kalan 1 olarak gösterildi.
+JAVASCRIPT-BOLUM3 7/30/09 9:21 PM Page 19
OPERATÖRLER 19
De¤er Artt›rma ve
Azaltma Operatörleri
Bu operatörler number ya da de¤iflkenin de¤erini artt›r›p azaltmaya yarar.
Burada de¤iflken olarak a karakterini kullanal›m;
Karakter Aç›klama
++ ++a ise a=a+1 ya da a++ ise a=a+1
-- --a ise a=a-1 ya da a-- ise a=a-1
20 JAVASCRIPT
Karfl›laflt›rma Operatörleri
Karakter Görevi
== Eflit (equal) anlam›na gelir. Bu operatör de¤iflken ya da de¤erlerin
veri türlerini dikkate almaz. (string ya da number ayr›m› yapmaz.)
Örnek
3==3 do¤rudur. “3”==3 do¤rudur, “saeml”=”Saeml” yanl›flt›r.
= = = Kesin eflit anlam›na gelir ve (==)‘den daha kat› kurallara sahiptir.
Veri türlerine bakarak kesin eflitlik arar.
Örnek
3===3 do¤ru, ama “3”===3 yanl›fl. “as “===”As” yanl›fl.
Örnek
<script language=”javascript” type=”text/javascript”>
a=”as”;
if(a===”As”)
{
alert(“Şart Doğru”);
}
</script>
OPERATÖRLER 21
Mant›ksal Operatörler
Bu operatörler karfl›laflt›rma yap›lar›nda kullan›lan operatörlerdir. Bir-
den fazla flart› ba¤lamak için kullan›l›rlar.
Karakter Görevi
&& ve (and) anlam›ndad›r. Toplam flart›n do¤ru olmas› için ve
operatörü ile ba¤lanm›fl tüm flartlar›n do¤ru olmas› gerekir.
Örnek
<script language=”javascript” type=”text/javascript”>
var a=2;
var b=3;
if(a==2 && b==4 )
{
alert(“Şart bloğu Doğru”);
}
</script>
Birinci flart do¤ru, ikinci yanl›fl oldu¤undan toplam flart yanl›fl olur.
|| veya (or) anlam›ndad›r. Toplam flart›n do¤ru olmas› için veya
operatörü ile ba¤lanm›fl flartlardan herhangi birinin do¤ru
olmas› yeterlidir.
Örnek
<script language=”javascript” type=”text/javascript”>
var a=2;
var b=3;
if(a==2 || b==4 )
{
alert(“Şart bloğu Doğru”);
}
</script>
22 JAVASCRIPT
Karakter Görevi
! Oluflan mant›ksal sonucu ters çevirir. ! (flart) fleklinde kullan›l›r.
! do¤ru à yanl›fl
! yanl›fl à do¤ru
!(4 >5) sonuç do¤ru
!(4 <5) sonuç yanl›fl
Typeof Operatörü
Parametre olarak verilen de¤erin veri türünü geri döndürür.
<script language=”javascript” type=”text/javascript”>
document.write(typeof(“efe”));
</script>
E¤er bir dizi de¤iflkeniniz varsa geriye object de¤erini döndürür. Çün-
kü dizi de¤iflkenleri object olarak oluflturulur.
Örnek
Bir dizi oluflturdum ve dizinin veri türünü görmek için typeof operatö-
rünü kulland›m. Geriye dönen de¤er object fleklinde olacakt›r.
OPERATÖRLER 23
Örnek
(şart)?a=5:a=10; flart do¤ruysa a de¤iflkeni 5 de¤erini, flart yanl›flsa
a de¤iflkeni 6 de¤erini al›r.
Örnek
(şart)?a=5:b=10; flart do¤ruysa a de¤iflkeni 5 de¤erini, flart yanl›flsa
b de¤iflkeni 10 de¤erini al›r.
Ya da üçlü operatörü bir de¤iflkene atay›p afla¤›daki gibi kullanabilirsiniz.
değişken = ( şart ) ? değer1 : değer2
Örnek
a=(1<2)?5:7; bu durumda flart do¤ruysa a=5, flart yanl›flsa a=7 de¤e-
rini al›r. fiart do¤ru oldu¤una göre a=5 olur.
fiart olarak true (do¤ru) ya da false (yanl›fl) döndüren bir de¤iflken kul-
lan›labilir.
Örnek
‹fllem Önceli¤i
‹fllem önceli¤i Javascript’in deyim ifade ve matematiksel ifllemlerde,
hangi operatörlere öncelik verdi¤i anlam›na gelir. ‹fllem önceli¤i flu s›ra
ile gerçekleflir:
1. Parantez ifllemleri
+JAVASCRIPT-BOLUM3 7/30/09 9:21 PM Page 24
24 JAVASCRIPT
2. Fonksiyonlar
3. Aritmetiksel ifllemler
4. Karfl›laflt›rma ifllemleri
5. Mant›ksal ifllemler
6. fiart ifllemleri
NOT Javascript’te ifllem öncelik yönü soldan sa¤a do¤rudur. Yani ifllemler sol-
dan sa¤a do¤ru yap›l›r.
OPERATÖRLER 25
26 JAVASCRIPT
merhaba javascript
merhaba javascript
Bu bofllu¤u koyarken fluna dikkat edin. E¤er çift t›rna¤› (“”) aç›p kapa-
t›rsan›z, iki t›rnak aras›na boflluk koymadan kullan›rsan›z bu 0 uzunluk-
ta bir karakter katar› olur ve boflluk içermez.
Ama e¤er iki çift t›rnak (“”) aras›na bir boflluk eklerseniz çift t›rnaklar
içinde bofl bir karakter saklar.
Örnek
OPERATÖRLER 27
la sayfan›n ak›fl›na bir alt sat›rdan devam etmesini sa¤lamakt›r. Bir met-
ni alt sat›ra yazmak için <br> etiketinin kullan›ld›¤›n› an›msay›n.
Örnek
Sonuç
saeml okulu
ajax,javascript
<body>
javascript Dersleri <br />
Flex 3 MXML dersleri <br />
<script language=”javascript” type=”text/javascript”>
document.write(“Javascript tarafından sayfaya
yazdırıldım”+”<br>”);
</script>
spry dersleri
</body>
28 JAVASCRIPT
Örnek
<head> etiketleri aras›nda de¤iflken tan›mlamalar›n› yapal›m.
<head>
<script language=”javascript” type=”text/javascript”>
var a=5;
var b=10;
var adi=”harun”;
</script>
</head>
<body>
<script language=”javascript” type=”text/javascript”>
document.write(a+b+”<br>”);
document.write(adi);
</script>
</body>
OPERATÖRLER 29
Karakter Katarlar›n›n
Biçimlerini De¤ifltirme
(Str›ng Metodlar›)
Bilgileri formatlarken javascript içerisinde HTML etiketleri kullan›yor-
duk. Bu ifllemi javascript metodlar›yla da gerçeklefltirebiliriz. Bu du-
rumda formatlanacak bilgiler kesinlikle de¤iflkenlerde saklanmal›d›r.
Çünkü bu yöntemler de¤iflkenlere uygulanabilir.
Örnek
sub()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
var soyadi=”emir”;
document.write(adi+soyadi.sub());
</script>
sup()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
var soyadi=soyadi”emir”;
document.write(adi+soyadi.sup());
</script>
30 JAVASCRIPT
bold()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.bold());
</script>
›tal›cs()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.italics());
</script>
toLowerCase()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.toLowerCase());
</script>
toUpperCase()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.toUpperCase());
</script>
fontcolor()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.fontcolor(“blue”));
</script>
+JAVASCRIPT-BOLUM3 7/30/09 9:21 PM Page 31
OPERATÖRLER 31
fonts›ze()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.fontsize(“20px”));
</script>
str›ke()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.strike());
</script>
charAt()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.charAt(0));
//sonuç:h
</script>
charCodeAt()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.charCodeAt(0));
//Sonuç:104
</script>
32 JAVASCRIPT
concat()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
var soyadi=”emir”;
document.write(adi.concat(soyadi));
//sonuç:harunemir
</script>
replace()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.replace(“har”,”car”));
// sonuç:carun
</script>
match()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.match(“un”));
// sonuç:un
</script>
OPERATÖRLER 33
›ndexof()
<script language=”javascript” type=”text/javascript”>
var adi=”harun”;
document.write(adi.indexOf(“u”,3));
// sonuç:3
</script>
substr›ng()
<script language=”javascript” type=”text/javascript”>
var a=”abcdef”;
document.write(adi.substring(1,3));
// sonuç:bc
</script>
substr›ng (baslangic,b›t›s)
substring() metodu karakter katar›ndan belirtilen index numaralar›n›
kullanarak karakter ya da karakter grubu almaya, koparmaya yarar. Ve-
rilen baslangic index numaras›na sahip karakter dahil, bitis index nu-
maras›na kadar olan karakterleri metinden kopar›r yani al›r. (Bitis index
numaras›na sahip eleman› almayacakt›r.)
substr›ng (baslang›c)
E¤er bu metod ile bir tane parametre kullan›rsan›z a de¤iflkeninin içeri-
sine girdi¤iniz bafllang›ç index numaras›ndan bafllayarak a de¤iflkeninin
en büyük index numaras›na sahip karakterine kadar tüm karakterleri al-
m›fl olursunuz.
substr ()
<script language=”javascript” type=”text/javascript”>
var a=”abcdef”;
+JAVASCRIPT-BOLUM3 7/30/09 9:21 PM Page 34
34 JAVASCRIPT
document.write(adi.substr(1,3));
// sonuç:bcd
</script>
D‹Z‹LER (ARRAY)
4
Dizi De¤iflkenine Ayn› Anda Diziden
Eleman (De¤er) Girme 36 Eleman Silmek ve Eklemek 43
Dizi Tan›mlarken Dizi De¤iflkenleri ‹çerisindeki
Boyutunu Belirleme 37 Elemanlar› S›ralamak ‹çin
Dizi De¤iflkenleri ‹çindeki Kullan›lan Metodlar 48
Elemanlara Ulaflma ve Dizi De¤iflkenleri ‹çerisinde
Elemanlar› De¤ifltirme 38 Eleman Aramak ‹çin
Dizi De¤iflkenlerine Kullan›lan Metodlar 51
Eleman Eklemek, Silmek 40 Dizi De¤iflkenlerin ‹çindeki
Dizi Eleman›n› Silmek Nesnelerin Metinsel Veriye
(Dizi ‹çinden Koparmak) 42 Dönüflümü ile ‹lgili Metodlar 52
Diziye Eleman Eklemek 43 Çok Boyutlu Diziler 53
Bir de¤iflken ad› alt›nda birden fazla veri saklamak için diziler kullan›l›r.
Programlama yaparken birbirleriyle ba¤lant›l› olan birden fazla veriyi
tekbir de¤iflken ad› alt›nda toplay›p o de¤iflkeni kullanmak iflimizi çok
kolaylaflt›r›r.
Özetle dizi içerisinde birden fazla veri saklayan de¤iflkenlerdir. Dizi de-
¤iflkenlerinin içerisindeki her bir ayr› veriye element ya da eleman denir.
Bu elemanlara uluflmak için indeks numaras› (s›ra numaras›) kullan›l›r.
NOT Javascript’te indeks numaralar› 0’dan bafllar.
36 JAVASCRIPT
var bilgi=[“bilgisayar”,3,4,true];//2.yöntem
Bir dizi de¤iflkeni içerisinde farkl› veri türlerine sahip elemanlar olabilir.
var bilgi=new Array(“bilgisayar”,3,4,true);
var sayi=5;
var bilgi=new Array(“bilgisayar”,3+4,sayi,true);
D‹Z‹LER (ARRAY) 37
var sayi=5;
var bilgi=new Array(“dhtml”+”javascript”,3+4,sayi,true);
Dizi Tan›mlarken
Boyutunu Belirleme
Dizinin boyutu içerisinde saklad›¤› eleman say›s› demektir. ‹sterseniz
dizi tan›mlarken boyutunu belirleyebilirsiniz.
Örne¤in;
Örnek
38 JAVASCRIPT
Örnek
D‹Z‹LER (ARRAY) 39
document.write(sayi);
// sonuç:4
</script>
40 JAVASCRIPT
1 eksik oluncaya kadar devam eder ve her döngüde dizi içerisinden bir
eleman ekrana yazd›r›l›r. Bu döngü sayesinde dizi elemanlar›n› sayfa-
m›za yazd›rabiliriz.
Sayfada;
Örnek
Dizi De¤iflkenlerine
Eleman Eklemek, Silmek
Dizi de¤iflkenlerine eleman eklemek için farkl› yöntemler kullan›labilir.
D‹Z‹LER (ARRAY) 41
push()
push() metodu dizi de¤iflkeninin en sonuna de¤er eklemek için kullan›l›r.
diziadi.push(“değer1”,”değer2”);
Örnek
NOT push() metodu ile tek seferde birden fazla veri eklenebilir.
Örnek
unsh›ft( )
Bu metod dizi de¤iflkeni içerisine eleman eklemek için kullan›l›r.
push() metodundan farkl› olarak elemanlar› dizinin en sonuna de¤il en
bafl›na ekler.
diziadi.unshift (“değer1”,”değer2”);
Örnek
<script language=”javascript” type=”text/javascript”>
var veri=new Array(1,2,3,4,5);
veri.unshift(“zeynep”);
veri.unshift(“emir”);
+JAVASCRIPT-BOLUM4 7/30/09 9:22 PM Page 42
42 JAVASCRIPT
document.write(veri[0]);
//sonuç:emir
</script>
Burada ilk önce “zeynep” metni diziye 0 indeks numaras›na sahip ola-
rak atand›. Daha sonraki sat›rda “emir” eleman› diziye 0 indeks numa-
ras›na sahip eleman olarak atand›. Sonuçta “emir” eleman› 0 ve “zey-
nep” eleman› 1 index numaras›na sahip oldu.
E¤er bu iki ayr› de¤eri tek sat›rda diziye eklemek isteseydik;
D‹Z‹LER (ARRAY) 43
0: Diziden eleman silmek için buraya 0 d›fl›nda bir say› eklemeniz ge-
rekecektir. Fakat 0 eklerseniz hiçbir eleman silinmeyecektir.
Örnek
44 JAVASCRIPT
Örnek
Örnek
D‹Z‹LER (ARRAY) 45
concat( )
Birden fazla dizi de¤iflkenini tek bir dizi içerisinde toplamaya yarayan
metoddur. (Toplama: dizilerin elemanlar›n› birlefltirmek)
‹sterseniz birden fazla dizi içerisindeki elemanlar› birlefltirip, yeni olufl-
turdu¤unuz diziye atayabilirsiniz.
Örnek
<script language=”javascript” type=”text/javascript”>
var myarray=new Array(2,1,”c#”,”asp.net”);
// myarray isimli bir dizi değişkeni tanımladım
var my_dizi=[“flex”,”flash”,true,3+4];
// my_dizi isimli bir dizi değişkeni tanımladım
var yeni_dizi=myarray.concat(my_dizi);
for(var i=0;i< yeni_dizi.length;i++)
{
document.write(yeni_dizi[i]);
document.write(“<br>”);
}
/*
sonuç:
2
1
c#
asp.net
flex
flash
true
7
*/
</script>
46 JAVASCRIPT
pop( )
Dizi içerisindeki en son eleman› (en büyük indeks numaras›na sahip ele-
man) silmeye yarar.
Örnek
*/
</script>
sh›ft( )
Dizi içerisindeki ilk eleman› yani 0 indeks numaral› eleman› silmeye
yarar.
Örnek
D‹Z‹LER (ARRAY) 47
sonuç:
1 c# asp.net
*/
</script>b
delete Operatörü
delete operatörü bir dizi de¤iflkeni içerisinde belirtilen indeks numara-
s›na sahip eleman›n indeks numaras›n› saklayarak sadece o indeks nu-
maras›n›n temsil etti¤i veriyi siler. Kalan indeks numaras› tan›mlanma-
m›fl bir veriyi temsil edecektir. Dizinin boyutu de¤iflmez.
Örnek
*/
</script>
48 JAVASCRIPT
Örnek
*/
</script>
D‹Z‹LER (ARRAY) 49
S›ralama yap›l›rken;
Örnek
<script language=”javascript” type=”text/javascript”>
var myarray=new Array(8,10,50,160,”Az”,”AZ”,”css”,”ajax”,”MEM”);
myarray.sort();
for(var i=0;i< myarray.length;i++)
{
+JAVASCRIPT-BOLUM4 7/30/09 9:22 PM Page 50
50 JAVASCRIPT
document.write(myarray[i]+”,”);
}
// sonuç :10,160,50,8,AZ,Az,MEM,ajax,css,
</script>
AZ, Az hangisi daha küçük derseniz; ilk harfler büyük ve eflit, ikinci
harflere geçildi¤inde büyük “Z” harfi “z” harfinden daha küçük oldu-
¤undan “AZ” karakter katar› “Az” de¤erinden daha küçüktür.
Küçükten büyü¤e
<script language=”javascript” type=”text/javascript”>
var myarray=new Array(8,10,50,160,83,19);
myarray.sort(function(a,b){return(a-b)})
for(var i=0;i< myarray.length;i++)
{
document.write(myarray[i]+” “);
}
// sonuç:8 10 19 50 83 160
</script>
Büyükten küçü¤e
<script language=”javascript” type=”text/javascript”>
var myarray=new Array(8,10,50,160,83,19);
myarray.sort(function(a,b){return(b-a)})
for(var i=0;i< myarray.length;i++)
{
document.write(myarray[i]+” “);
}
// sonuç:160 83 50 19 10 8
</script>
+JAVASCRIPT-BOLUM4 7/30/09 9:22 PM Page 51
D‹Z‹LER (ARRAY) 51
reverse ( )
Bu metod dizi içerisindeki s›ralamay› ters çevirir. Yani ilk bafltaki ele-
man en sona, en sondaki eleman ilk bafla gelir. Bu metod azalan s›ra-
lama (descending) için kullan›labilir.
Örnek
<script language=”javascript” type=”text/javascript”>
var a=[“css”,”dhtml”,1,5,3];
document.write(a.indexOf(1));
// a isimli dizide 1 elamanı vardır ve index numarası 2’dir.
// sonuçta ekrana 2 değeri yazılır
</script>
52 JAVASCRIPT
Örnek
Örnek
<script language=”javascript” type=”text/javascript”>
var a=[“css”,”dhtml”,1,5,3];
document.write(a.join(“*”));
+JAVASCRIPT-BOLUM4 7/30/09 9:22 PM Page 53
D‹Z‹LER (ARRAY) 53
// sonuç:css*dhtml*1*5*3
</script>
Örnek
Örnek
54 JAVASCRIPT
KOfiUL ‹FADELER‹
5
VE DÖNGÜLER
Koflul ‹fadeleri 55 Döngü ‹fadeleri 61
if ‹fadesi 55 for Döngüsü 61
if else Yap›s› 56 while Döngüsü 64
else if Yap›s› 57 do..while Döngüsü 66
switch ‹fadesi (Durum-Koflul) 59 Döngülerde Kullan›lan Deyimler 67
break Deyimi 67
continue Deyimi 68
Bir komut grubunu program kodlar› ak›fl›nda herhangi bir flarta ba¤l›
olarak çal›flt›rmak istiyorsak, karar (s›nama) yap›lar›n› kullanmam›z ge-
rekir. Belirledi¤iniz flartlara ya da durumlara göre kodlar› çal›flt›rmak ya
da çal›flt›rmamak isteyebilirsiniz. Bu durumda karar, yani s›nama yap›-
lar›n› kullanabilirsiniz.
Koflul ‹fadeleri
›f ‹fadesi
if yap›s›nda e¤er flart ya da flart grubu do¤ru ise yani sonuçta true de-
¤eri döndürüyorsa süslü parantez içindeki kodlar çal›flt›r›l›r, tersi du-
rumda çal›flt›r›lmaz.
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 56
56 JAVASCRIPT
var a=4;
var b=prompt(“Bir sayı giriniz ?”,””);
if(a==4)
{
alert(“Kullanıcının girdiği sayı 4”)
}
›f else Yap›s›
if(Şart)
{
// Şart doğru ise çalışacak kodlar
}else{
// Şart yanlış ise çalışacak kodlar
}
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 57
Örnek
var a=4;
var b=prompt(“Bir sayı giriniz ?”,””);
if(a==b)
{
alert(“Girilen değer 4”);
}else{
alert(“Girilen değer 4’den farklı”);
}
Örnekte flart›n hem do¤ru hem de yanl›fl olma durumunu kontrol etmifl
oluyoruz. Kontrol etmekten kas›t o duruma kod yazmak demektir.
NOT E¤er if ya da else deyimlerinden sonra bir tane kod yaz›lacaksa süslü
parantez {} kullanmayabilirsiniz.
Örnek
var a=4;
var b=prompt(“Bir sayı giriniz ?”,””);
if(a==b)
alert(“Girilen değer 4”);
else
alert(“Girilen değer 4’den farklı”);
else ›f Yap›s›
Bir if yap›s› içerisinde tekrar s›nama yapmak için kullan›l›r. Bir koflul
blo¤u içinde yeni bir koflul oluflturmak için kullanabilirsiniz. Özetle bir
koflulun yanl›fl olma durumuna göre tekrar s›nama yapmak için kullan›l›r.
if(şart1)
{
// şart1 doğru ise çalışacak kodlar
}else if(şart2){
// şart1 yanlış ve şart2 doğruysa çalışacak kodlar
}else if(şart3){
// şart1,şart2 yanlış ve şart3 doğruysa çalışacak kodlar
}
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 58
58 JAVASCRIPT
Örnek
var a=4;
var b=prompt(“Bir sayı giriniz ?”,””);
if(a==b)
{
alert(“kullanıcının girdiği sayı 4”);
}else if(a<b){
alert(“kullanıcının girdiği sayı 4’den büyük”);
}else if(a>b){
alert(“kullanıcının girdiği sayı 4’den küçük”);
}
Örnekte ana s›nama yap›s› içerisine 2 tane daha s›nama yap›s› oluflturul-
mufltur. if blo¤unun hemen alt›ndaki else if yap›s› ba¤l› oldu¤u ana if
yap›s›n›n yanl›fl oldu¤u durumda çal›flacakt›r. En alttaki else if yap›s›
ise hem üstündeki else if yap›s›n›n hem de ana if yap›s›n›n yanl›fl ol-
du¤u durumda çal›flacakt›r.
Örnek
Ana if blo¤undaki flart sa¤lan›rsa “ahmet bey hofl geldiniz” fleklinde bir
mesaj kutusu gösterilmektedir. E¤er ana if blo¤undaki flart yanl›fl ise
else if yap›s›na geçilir. E¤er else if yap›s›ndaki flart do¤ru ise bu du-
rumda yine karfl›lama mesaj› ç›kacakt›r. Ana if blo¤undaki ve else if
yap›lar›ndaki koflullar do¤ru de¤ilse o zaman en altta bulunan “de¤ilse”
yani else içindeki kodlar çal›flacakt›r.
NOT Bir koflul yap›s›na istedi¤iniz kadar alt koflul (else if) ekleyebilirsiniz.
Ama bir koflul yap›s›nda bir tane if ve else bloklar› kullan›l›r.
60 JAVASCRIPT
• switch yap›s› içerisinde hiçbir flart blo¤u do¤ru de¤ilse default anah-
tar sözcü¤ünün alt›ndaki kodlar çal›fl›r. Bu ifadenin kullan›lma zorunlu-
lu¤u yoktur.
• Bir switch yap›s› içerisinde farkl› veri türleri kullan›labilir.
Örnek
Döngü ‹fadeleri
Bir komutu ya da komut blo¤unu birden çok kez çal›flt›rmak için döngü-
ler kullan›l›r. Yapt›rmak istedi¤iniz ifllemleri birden fazla tekrarlatmaya
yarar. Örne¤in ekrana 1-100 aras›ndaki say›lar› yazd›rmak istiyorsunuz.
Yukar›daki gibi 100 sat›r kod yazman›z gerekecek. Bir ifllemi 1000 ya
da daha fazla kez tekrar etmeniz gerekebilir. Bu durumda yukar›daki ifl-
lem içinden ç›k›lmaz bir hale gelir. Yukar›daki kodlara dikkat ederseniz
hepsinde ortak olan bir deyim var. O da document.write() metodu-
dur. Yukar›daki yap›y› döngülerle 2 sat›r kod yazarak halledebiliriz.
for Döngüsü
En çok kullan›lan döngülerden biridir. Bir de¤iflken oluflturursunuz bu
de¤iflken ile ilgili bir flart belirtirsiniz ve de¤iflken bu flarta uydukça dön-
gü çal›fl›r. (‹çindeki komutlar› tekrarlar.)
62 JAVASCRIPT
yazd›r›lm›fl oldu.
Örnek
var a=0;
for(var i=1;i<101;i++)
{
a=a+i;
}
document.write(“1-100 arası sayıların toplamı”+”=”+a);
// sonuç:5050
64 JAVASCRIPT
................
................
a=4950+100 (i de¤iflkenin de¤eri 100 olmufltur)
Bu durumdan sonra i de¤eri 101 olaca¤›ndan döngüden ç›k›lacak ve
sonuç: 5050 olacakt›r.
var a=0;
for(var i=2;i<101;i=i+2)
{
a=a+i;
}
document.write(“1-100 arası çift sayıların toplamı”+”=”+a);
// sonuç:2550
wh›le Döngüsü
Koflul do¤ru oldu¤u sürece while döngüsü komut ya da komut blokla-
r›n› tekrarlar. For döngüsünden farkl› olarak parantez içine sadece 1 ta-
ne ifade yaz›l›r.
bir de¤er döndüren ifade yaz›lmal›d›r. Koflul do¤ru oldu¤u sürece dön-
gü çal›fl›r, e¤er koflul geriye false de¤eri döndürürse döngüden ç›k›l›r.
Örnek
var k=1;
while(k<21)
{
document.write(k+”<br>”);
k++;
}
Örnek
Bir string içerisinde bir karakterin kaç kere kullan›ld›¤›n› bulal›m.
Burada yap›lan ifllem str isimli de¤iflkende bir karakterin var olup ol-
mad›¤›n› e¤er var ise kaç defa kullan›ld›¤›n› bulma ifllemidir.
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 66
66 JAVASCRIPT
i=8 olunca;
do..wh›le Döngüsü
do..while döngüsünün while döngüsünden fark›, koflul do¤ru olsun ya
da olmas›n döngü içerisindeki komutlar›n en az 1 defa çal›flt›r›lmas›d›r.
Örnek
var i=21;
do
{
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 67
document.write(i);
}while(i<20);
Örnek
var i=0;
do
{
document.write(i+”<br>”)
i++;
}while(i<21);
Döngülerde
Kullan›lan Deyimler
Döngüden ç›kmak ya da döngü bafl›na gitmek için kullan›lan deyimler.
break Deyimi
Bu deyim döngüyü durdurmaya, terk etmeye yarar. Yani döngünün her-
hangi bir yerine bu deyim yaz›l›rsa döngüden ç›k›l›r. Bazen döngüler bir
ifade içerisinde bir karakter arama ya da dizi içerisinde karakter arama
ifllemleri için kullan›labilir. Bu deyimi kullanmazsak aranan karakter
bulunsa bile döngü sürmeye devam edecektir.
68 JAVASCRIPT
Örnek
Dizi içerisinde “a” karakterinin var olup olmad›¤›na bakal›m. E¤er var-
sa bir mesaj kutusu gösterdikten sonra döngüden ç›kal›m.
Sonuç olarak bir mesaj kutusu ile “dizi içerisinde a karakteri var” yaz›-
s› kullan›c›ya gösterilir.
NOT Ayr›ca break deyimi ile sonsuz döngülerden ç›kmam›z mümkün olacakt›r.
E¤er sonsuz bir döngü oluflmuflsa bu döngü ilk önce taray›c›y› ifllemez ha-
le getirir ve daha kötüsü bilgisayar› kilitleyebilir.
cont›nue Deyimi
Bu deyim döngü içinde herhangi bir noktada kullan›ld›¤›nda o noktada
kodlar›n çal›flt›r›lmas›na son verilir ve döngü bafl›na geri dönülür. Bafl-
ka bir ifadeyle kullan›ld›¤› yerde program ak›fl› b›rak›l›r ve ak›fla dön-
güyü oluflturan deyimden (for, while gibi) devam edilir.
Örnek
0-20 aras›ndaki say›lar› (15 say›s› hariç) sayfaya yazd›ral›m.
<script language=”javascript” type=”text/javascript”>
for(var i=0;i<21;i++)
{
if(i==15)
{
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 69
continue;
}
document.write(i+”<br>”);
}
</script>
+JAVASCRIPT-BOLUM5 7/30/09 9:23 PM Page 70
70 JAVASCRIPT
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 71
FONKS‹YONLAR
6
Fonksiyon Tan›mlama 72 isNaN( ) 83
Fonksiyonlarda Geriye escape ( ) ve unescape( ) 83
De¤er Döndürme 77 parseint( ) ve parseFloat( ) 84
Rekursive Fonksiyonlar 80 String( ) ve Number( ) 85
Haz›r Fonksiyonlar 81 De¤iflkenlerin Geçerli
eval() 81 Olduklar› Alan 86
isFinite() 83
Bir ifllevi yani görevi yerine getiren kod bloklar›d›r. Tekrar tekrar çal›fl-
t›rma ihtiyac› duydu¤unuz kod bloklar›n› bir isim alt›nda bir araya geti-
rip, istedi¤iniz zaman bu ismi kullanarak kod blo¤unu çal›flt›rabilirsiniz.
Çok kulland›¤›n›z kodlar› özel bir blok oluflturup bunun içerisine yazar-
s›n›z ve bu kod grubuna bir isim verirsiniz. Uygulamada bu kod grubu-
nun yapt›¤› ifle ihtiyaç duyarsan›z bu kod grubunu tekrar yazmadan sa-
dece ismiyle ça¤›r›p iflleminizi gerçeklefltirirsiniz.
Javascript’te fonksiyonlar›n yapt›¤› ifl yukar›dakilerle s›n›rl› kalmaz. Ja-
vascript nesne tabanl› bir dildir. Bir olay karfl›l›¤›nda çal›flt›rmak istedi-
¤imiz kodlar› bir fonksiyon içerisine yaz›p belirlenen olay oldu¤unda
bu fonksiyonun çal›flmas›n› sa¤layabiliriz. (Fonksiyon ça¤r›l›r.)
Fonksiyonlara girdi olarak de¤erler verebilir ve istedi¤imiz ifllemleri
yerine getirmesini sa¤layarak ç›kt› alabiliriz. Girdiler parametre olarak
tan›mlan›r.
‹sterseniz girdi vermeden de ç›kt› alabilirsiniz. Fonksiyon ç›kt› vermek
zorunda de¤ildir. Fonksiyonlar ça¤r›ld›¤›nda bir ç›kt› vermeden sadece
içine yaz›lan kod bloklar›n› çal›flt›rabilir.
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 72
72 JAVASCRIPT
Fonksiyon Tan›mlama
Fonksiyon kesinlikle function bildirimi ile bafllamal›d›r ve bu bildirim
küçük harfle yaz›lmal›d›r.
function fonksiyonadı(Parametreler)
{
// Kod blokları
}
FONKS‹YONLAR 73
{
//kodlar
}
Örnek
<script type=”text/javascript”>
say();
// say() isimli fonksiyon çağrıldı
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 74
74 JAVASCRIPT
function say()
{
var k=1;
while(k<11)
{
document.write(k+”<br>”);
k++;
}
}
</script>
Örnek
<script type=”text/javascript”>
var say_bir=prompt(“1.sayıyı giriniz”,””);
var say_iki=prompt(“2.sayıyı giriniz”,””);
kare(say_bir,say_iki);
// kare() isimli fonksiyon çağrıldı
function kare(x,y)
{
var sonuc=x*x+y*y;
document.write(sonuc);
}
</script>
Örnek
Obeb Hesaplayan Fonksiyon
Obeb ortak bölenlerinin en büyü¤ü anlam›na gelmektedir.
<script type=”text/javascript”>
obeb(12,40);
// obeb() fonksiyonu çağrıldı
function obeb(a,b)
{
// eğer bir sayı diğerinin katı ise bu durumda
// obeb sayılardan küçük olana eşittir.
if(a>b)
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 75
FONKS‹YONLAR 75
{
if(a%b==0)
{
document.write(“obeb : “ + b);
// fonksiyonu terk edelim
return;
}
}
if(b>a)
{
if(b%a==0)
{
document.write(“obeb : “ + a);
// fonksiyonu terk edelim
return;
}
}
// - Eğer Sayılar Birbirinin Katı değilse - //
var mydizi=new Array();
// a>b ise
if(a>b)
{
var x=0;
for(var i=1;i<(b+1);i++)
{
if((a%i==0)&&(b%i==0))
{
mydizi[x]=i;
}
x++;
}
}
// b>a ise
if(b>a)
{
var x=0;
for(var i=1;i<(a+1);i++)
{
if((a%i==0)&&(b%i==0))
{
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 76
76 JAVASCRIPT
mydizi[x]=i;
}
x++;
}
}
// mydizi içerisindeki enson eleman
// ortak bölenlerin enbüyüğü olacaktır.
document.write(a+” “+”ve”+” “+b+” “+”sayıları için
OBEB=”+mydizi[mydizi.length-1])
}
</script>
Burada flunu bilmemiz gerekir; e¤er iki say› birbirinin kat› ise bu du-
rumda bu iki say›n›n obeb’i en küçük olan say›ya eflittir. Program›n ilk
bafl›nda bu s›nanm›flt›r. E¤er a>b ve a, b’nin kat› ise; bu durumda obeb
b’ye eflittir. Ya da b>a ve b, a’n›n kat› ise obeb a’ya eflit olacakt›r. Yu-
kar›da anlat›lan durumlardan biri gerçekleflmiflse return deyimi kulla-
n›larak fonksiyon terk edilecektir.
E¤er say›lar aras›nda kat olma durumu yoksa ifllem biraz daha zor bir
hale gelir, ki bu durumda di¤er s›namalara geçmek gerekir.
Daha sonra a>b ve b>a için iki s›nama daha yap›lm›flt›r ve ben bunlar-
dan bir tanesini ayr›nt›l› bir flekilde anlataca¤›m. Di¤eri de zaten ayn›
mant›kla çal›flacakt›r.
if(a>b)
{
var x=0;
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 77
FONKS‹YONLAR 77
for(var i=1;i<(b+1);i++)
{
if((a%i==0)&&(b%i==0))
{
mydizi[x]=i;
}
x++;
}
E¤er a>b ise bir döngü kullan›p iki say›y› 1’den b’ye kadar olan say›la-
ra bölece¤iz. Bu bölmelerde a ve b say›lar›n› kalans›z bölen bir i de¤e-
ri bulunursa bu de¤er if deyimi ile yakalan›p mydizi dizi de¤iflkeni
içerisine atanacak.
‹ki say›y› da bölen en büyük say›, mydizi dizi de¤iflkeni içindeki en bü-
yük say› olacakt›r. Bu dizi içerisindeki en büyük say› tabiki i’nin de¤e-
ri sürekli artt›¤›ndan dizi ye en son eklenen say› olacakt›r.
document.write(a+” “+”ve”+” “+b+” “+”sayıları için
OBEB=”+mydizi[mydizi.length-1])
Fonksiyonlarda Geriye
De¤er Döndürme
Fonksiyonlara girdi yani parametre verseniz de vermeseniz de geriye
de¤er döndürmek zorunda de¤iller. Bir fonksiyon, ekrana veri yazd›rma
ve di¤er ifllemleri kendi içinde yapabilir. Fonksiyonun geriye de¤er
döndürmesi ça¤r›ld›¤› yani çal›flt›r›ld›¤› yere de¤er döndürmesi anlam›-
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 78
78 JAVASCRIPT
Örnek
function deger()
{
return 10;
}
var a=deger();
document.write(a);
return deyimi boflluktan sonra noktal› virgüle kadar olan k›sm› geriye
döndürecektir. Fonksiyondan geriye dönen de¤er 10 olacak ve bu 10 de-
¤eri a de¤iflkenine atanacakt›r. Daha sonra a de¤iflkeni sayfaya yazd›r›l-
m›flt›r.
Örnek
function deger()
{
return 10;
document.write(“javascript”);
/*
return fonksiyonun çalışmasını
bitirdiğinden ekrana javascript metni yazılmayacak
*/
}
var a=deger();
document.write(a);
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 79
FONKS‹YONLAR 79
Örnek
function deger(a)
{
if(a==5)
{
return;
}
// fonksiyona parametre olarak 5 değeri
// gönderilirse fonksiyondan çıkılacak
}
return deyimi ile geriye dönen de¤er bir ifade ya da formülde kullan›-
labilir.
function deger(num)
{
return num*num;
}
document.write(2*deger(2));
Örnek
function deger(num)
{
var a=num+1;
return a;
/*
return deyimi ile
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 80
80 JAVASCRIPT
Rekurs›ve Fonksiyonlar
Fonksiyon kod blo¤u içerisinden kendi kendisini ça¤›r›yorsa bu yap›ya
recursive fonksiyon ad› verilir.
Örnek
function azalt(num)
{
if(num==0)
{
return;
// döngüden çık;
}
document.write(num+”-”);
num—;
azalt(num);
}
azalt(10);
// sonuç: 10-9-8-7-6-5-4-3-2-1-
Örnek
Bir fonksiyon içerisinden baflka bir fonksiyonu ça¤›rabiliriz.
ab üst alma
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 81
FONKS‹YONLAR 81
<script type=”text/javascript”>
ust_basla(2,3);
function ust_basla(a,b)
{
if(b==0)
{
document.write(a+ String(b).sup()+”=”+”0”);
}else{
ust(a,b);
}
}
function ust(a,b)
{
var k=1;
for(var i=1;i<(b+1);i++)
{
k=k*a;
}
document.write(a+ String(b).sup()+”=”+k);
}
// sonuç: 23=8
</script>
Haz›r Fonksiyonlar
eval()
De¤iflkenleri de¤erlendirmek için kullan›l›r.
Örnek
<script type=”text/javascript”>
var a=”2”;
var b=”3”;
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 82
82 JAVASCRIPT
document.write(a+b+”<br>”);
// sonuç:23
document.write(eval(a)+eval(b));
// sonuç:5
</script>
Örnek
<script type=”text/javascript”>
var a=prompt(“bir sayı giriniz”);
// prompt()ile oluşturulan girdi kutusuna
// sayısal bir değer girseniz bile prompt() metodunun
// geriye döndürdüğü degerin veri türü string olacaktır.
var b=3;
document.write(a+b+”<br>”);
document.write(eval(a)+b);
</script>
Örnek
<script type=”text/javascript”>
var kullanici_sifresi=”123af”;
document.write(eval(“kullanici_”+”sifresi”));
// sonuç:123af
</script>
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 83
FONKS‹YONLAR 83
›sF›n›te()
Verilen say›n›n sonlu bir say› olup olmad›¤›n› bulmak için kullan›l›r.
Yani isFinite() fonksiyonu say›n›n pozitif s›n›r› afl›p aflmad›¤›n› an-
lamak için kullan›l›r.
Örnek
<script type=”text/javascript”>
document.write(isFinite(23)+”<br>”);// sonuç:true
document.write(isFinite(2.3)+”<br>”);// sonuç:true
document.write(isFinite(5-2)+”<br>”);// sonuç:true
// fonction içerisinde matematiksel işlem
// sonucunu değerlendirmek mümkün
document.write(isFinite(“Merhaba”)+”<br>”);// sonuç:false
document.write(isFinite(1.79e+400)+”<br>”);// sonuç:false
</script>
›sNaN( )
Kendisine verilen de¤erin say›sal yani number olup olmad›¤›n› kontrol
edecektir. E¤er verilen de¤er number ise false de¤ilse true de¤eri
döndürür. NaN (Not a Numeric) say›sal de¤il anlam›na gelmektedir.
Örnek
<script type=”text/javascript”>
document.write(isNaN(“A”)+”,” +isNaN(2));
// sonuç:true,false
</script>
escape ( ) ve unescape( )
escape() fonksiyonu karakterleri özel olarak kodlamak için unesca-
pe() fonksiyonu bu özel kodlamay› çözmek için kullan›l›r. Sunucuya
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 84
84 JAVASCRIPT
Örnek
<script type=”text/javascript”>
// escape()
document.write(escape(“ “)+”<br>”);// sonuç:%20
document.write(escape(“#”)+”<br>”);// sonuç:%23
document.write(escape(“&”)+”<br>”);// sonuç:%26
document.write(escape(“$”)+”<br>”);// sonuç:%24
</script>
<script type=”text/javascript”>
// unescape()
document.write(unescape(“%20”)+”<br>”);// sonuç:boşluk
document.write(unescape(“%23”)+”<br>”);// sonuç:#
document.write(unescape(“%26”)+”<br>”);// sonuç:&
document.write(unescape(“%24”)+”<br>”);// sonuç:$
</script>
parse›nt( ) ve parseFloat( )
parseInt() kendisine verilen string de¤erin (karakter kümesi’nin) sa-
y›sal olan k›sm›n› yani numeric olan k›sm›n› alacakt›r. parseInt()
fonksiyonu string içerisinde ondal›kl› k›s›mlar› almaz. Çünkü parse-
Int() geriye integer, yani tamsay› döndürür.
Örnek
<script type=”text/javascript”>
document.write(parseInt(“21aaaa”)+”<br>”);
// sonuç:21
document.write(parseInt(“a21aaaa”)+”<br>”);
// karakter katarında ilk karakter harf olduğundan
// parseInt() fonksiyonu geriye NaN döndürür.
document.write(parseInt(“23.2333”)+”<br>”);
// karakter kümesinden 23 degeri alındı.Nokta karakteri
// parseInt() fonksiyonu tarafından numeric olarak kabul edilmez.
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 85
FONKS‹YONLAR 85
Örnek
<script type=”text/javascript”>
document.write(parseFloat(“21aaaa”)+”<br>”);
// sonuç:21
document.write(parseFloat(“a21aaaa”)+”<br>”);
// karakter katarında ilk karakter harf olduğundan
// parseFloat() fonksiyonu geriye NaN döndürür.
document.write(parseFloat(“23.2333”)+”<br>”);
// parseFloat()fonksiyonu geriye ondalıklı sayı döndürebilir.
// sonuç:23.2333
</script>
Str›ng( ) ve Number( )
String() verilen de¤eri string veri türüne çevirir.
Örnek
<script type=”text/javascript”>
var str1=”12”;
var str2=”abc23”;
document.write(Number(str1)+1);
/*
str1 değişkeninin veri türü string olmasına ragmen
Number() fonksiyonu ile number veri türüne çevrilmiştir.
*/
document.write(Number(str2)+1);
/*
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 86
86 JAVASCRIPT
Örnek
<script type=”text/javascript”>
var num1=5;
var num2=23;
document.write(String(num1)+num2);
// sonuç:523
</script>
De¤iflkenlerin Geçerli
Olduklar› Alan
Javascript’te kulland›¤›m›z de¤iflkenleri bir genel de¤iflkenler yani
<script> blo¤u içinde tan›mlanan, birde yerel (local) de¤iflkenler ya-
ni fonksiyon içinde tan›mlanan olarak ikiye ay›rabiliriz.
Örnek
<script type=”text/javascript”>
var a=5;
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 87
FONKS‹YONLAR 87
var b=10;
// genel değişkenler tanımlandı
function islem()
{
a=”ajax”;
b=”dhtml”;
// genel değişkenlerin fonksiyon içerisinde
// değerleri değiştirilebilir.
var c=”asp.net”;
// fonksiyon içerisinde tanımlanan c değişkeni
// local bir değişkendir.
}
islem();
document.write(a+”<br>”);// sonuç:ajax
document.write(b+”<br>”)// sonuç:dhtml
document.write(c)
// fonksiyonun çalışması bittiğinde c değişkeni hafızadan silinir
// c değişkenine fonksiyon dışından ulaşamazsınız.
</script>
+JAVASCRIPT-BOLUM6 7/30/09 9:48 PM Page 88
88 JAVASCRIPT
+JAVASCRIPT-BOLUM7 7/30/09 9:25 PM Page 89
OLAYLAR
7
(EVENTS)
Eventhandler onSelect Olay› 102
(Olay Yönlendiricileri) 89 onResize Olay› 103
onLoad, onUnLoad Olaylar› 90 onKeyDown Olay› 103
onClick, onDbClik Olaylar› 92 onKeyPress Olay› 107
onSubmit Olay› 94 onKeyUp Olay› 108
onReset Olay› 95 onMouseDown Olay› 109
onChange Olay› 96 onMousemove Olay› 109
onFocus Olay› 98 onMouseout Olay› 109
onBlur Olay› 99 onMouseOver Olay› 109
onError, onAbort Olaylar› 100 onMouseUp Olay› 109
Eventhandler
(Olay Yönlendiricileri)
Bir olay meydana geldi¤inde fonksiyonlar› çal›flt›rmam›z› sa¤layan
eventhandler’lard›r.
90 JAVASCRIPT
OLAYLAR (EVENTS) 91
Örnek
Örnek
Taray›c› penceresi kapat›ld›¤›nda kullan›c›ya bir mesaj kutusu gösteri-
lecektir.
92 JAVASCRIPT
</head>
<body onunload=”unload_mesaj();”>
</body>
</html>
Örnek
OLAYLAR (EVENTS) 93
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function esitle()
{
document.getElementById(“txt2”).value=document.getElementB-
yId(“txt1”).value;
}
</script>
</head>
<body >
<input type=”text” id=”txt1” /><br />
<input type=”text” id=”txt2” /><br />
<input type=”button” value=”doldur” onclick=”esitle()”/>
</body>
</html>
Sayfa üzerinde iki tane text yani metin kutumuz, bir tane de butonumuz
var. Kullan›c› butona clickledi¤inde onClick olay› meydana gelecek ve
esitle() isimli fonksiyon bu olaya karfl›l›k eventhandler taraf›ndan
çal›flt›r›lacakt›r.
94 JAVASCRIPT
onSubm›t Olay›
Formlar kullan›c›dan bilgi toplamaya yarayan alanlard›r. Submit buto-
nuna t›kland›¤›nda form etiketi içerisinde action özelli¤i ile belirlenmifl
sayfaya belirtilen method ile form içerisindeki bilgiler gönderilir.‹flte
formu göndermeye yarayan submit butonuna t›kland›¤›nda Javascript
onSubmit olay›n› üretir.
OLAYLAR (EVENTS) 95
onReset Olay›
Form elemanlar›n›n içerisindeki bilgileri s›f›rlamak silmek için reset
dü¤mesi kullan›l›r. Kullan›c› reset dü¤mesine t›klad›¤›nda onReset
olay› oluflur.
Örnek
96 JAVASCRIPT
onChange Olay›
Kullan›c›yla etkileflime giren form elemanlar›nda, kullan›c› seçimi de-
¤ifltirdi¤inde ya da girilen metni de¤ifltirdi¤inde onChange olay› meyda-
na gelir.
Örnek
OLAYLAR (EVENTS) 97
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function change()
{
alert(“seçimi değiştirdiniz”)
}
</script>
</head>
<body >
<select id=”ders” onchange=”change()”>
<option>c#</option>
<option>c++</option>
<option>vb.net</option>
</select>
<input type=”checkbox” onchange=”change()” />
</body>
</html>
Örnek
98 JAVASCRIPT
Sayfam›z:
onFocus Olay›
Kullan›c›n›n herhangi bir HTML eleman› ya da form eleman›n› seçme-
si, program kontrolünün elemanda olmas›, o elemana odaklan›lmas› du-
rumunda olay› meydana gelir. Bu olaylar› destekleyen HTML taglar›n-
dan baz›lar› flunlard›r.
<a>, <b>,<big>, <blockquote>, <body>, <button>, <div>,<em>,
<form>, <h1> to <h6>, <hr>, <i>, <img>, <input>,<label>,
<legend>, <li>, <ol>, <p>, <pre>, <select>, <span>,
<strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>,
<th>, <thead>, <tr>, <tt>, <ul>
Örnek
OLAYLAR (EVENTS) 99
<script type=”text/javascript”>
function odaklan(x)
{
document.getElementById(x).style.backgroundColor=”yellow”;
}
</script>
</head>
<body >
<textarea id=”alan” onfocus=”odaklan(this.id)”></textarea><br />
<input type=”text” id=”kutu” onfocus=”odaklan(this.id)” />
</body>
</html>
‹ki eleman›n onFocus olaylar› için, odaklan() isimli bir fonksiyon ta-
n›mlanm›flt›r.
onBlur Olay›
Kullan›c› bir eleman için odaklanmaya son vermifl ise, kullan›c› bu elema-
n›n seçili olma durumunu bitirmiflse yani eleman› terk etmiflse, onBlur
olay› gerçekleflir.
+JAVASCRIPT-BOLUM7 7/30/09 9:25 PM Page 100
100 JAVASCRIPT
Örnek
Kullan›ld›¤› taglar
<img>, body(window)
Kullan›ld›¤› objeler
img
Kullan›ld›¤› taglar
<img>
Kullan›ld›¤› objeler
img
Örnek
102 JAVASCRIPT
onSelect Olay›
Text ve textarea elemanlar› içerisinde bulunan metin seçilirse, bu olay
meydana gelecektir.
Örnek
onRes›ze Olay›
Kullan›c› taray›c› penceresini resize etti¤inde bu olay gerçekleflir.
Örnek
onKeyDown Olay›
Kulan›c› bir eleman üzerinde klavyeden bir tufla bast›¤›nda ilk oluflan
olayd›r.
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
+JAVASCRIPT-BOLUM7 7/30/09 9:25 PM Page 104
104 JAVASCRIPT
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function klavye_event()
{
alert(“Klavyeden bir tuşa basıldı”);
}
</script>
</head>
<body>
<form>
<input type=”text” onkeydown=”klavye_event()”/>
</form>
</body>
</html>
Örnek
<body>
<form>
<input type=”text” onkeydown=”klavye_event()”/><br />
<div id=”yaz” style=”background-color:#CCC;”></div>
</form>
</body>
</html>
106 JAVASCRIPT
Örnek
Örnek
Form içerisindeki text metin kutusu üzerinde klavyeden herhangi bir tu-
fla bas›ld›¤›nda klavye_event(event) fonksiyonu çal›flt›r›l›yor. Fonk-
siyona event girdisi gönderildi¤inden e = event olacakt›r. Fonksiyon
içerisinde event deyimi e parametresi ile temsil edilecek.
+JAVASCRIPT-BOLUM7 7/30/09 9:25 PM Page 107
onKeyPress Olay›
Kullan›c› bir tufla bast›¤›nda ya da bas›l› tuttu¤unda gerçekleflir. Bu olay
onKeyDown olay›ndan sonra gerçekleflir.
Örnek
108 JAVASCRIPT
Çal›flt›ral›m
onKeyUp Olay›
Kullan›c› bas›l› olan bir tuflu b›rakt›¤›nda bu olay meydana gelir. Bu
olay di¤er klavye olaylar›ndan sonra gerçekleflir.
onMouseDown Olay›
Bir nesne üzerinde farenin bir tufluna bas›ld›¤›nda bu olay gerçekleflir.
onMousemove Olay›
Fare iflaretçisi bir nesne üzerinde gezdirildi¤i zaman bu olay gerçekleflir.
onMouseout Olay›
Fare iflaretçisi bir nesne üzerinden ç›kt›¤› zaman bu olay gerçekleflir.
onMouseOver Olay›
Fare iflaretçisi bir nesne üzerine girdi¤i zaman bu olay gerçekleflir.
onMouseUp Olay›
Bir nesne üzerinde farenin bas›l› olan tuflu b›rak›ld›¤› zaman gerçekleflir.
</style>
<script type=”text/javascript”>
+JAVASCRIPT-BOLUM7 7/30/09 9:25 PM Page 110
110 JAVASCRIPT
</tr>
<tr>
<td width=”178” height=”146” >
<div id=”down”></div>
<div id=”move”></div>
<div id=”out”></div>
<div id=”over”></div>
<div id=”up”></div> </td>
<td width=”88”><img src=”resim.JPG”
width=”87”
onmousedown=”m_down();”
onmousemove=”m_move();”
onmouseout=”m_out();”
onmouseover=”m_over();”
onmouseup=”m_up();”
height=”144” /></td>
</tr>
</table>
</body>
</html>
Olaylar gerçekleflti¤i zaman olay adlar›n› ekrana yazmak için 5 tane div
oluflturduk ve bu div ler için id (kimlik) atamalar› yapt›k. Sa¤ tarafta
bulunan resme tüm mouse olaylar› için fonksiyonlar tan›mlad›k.
+JAVASCRIPT-BOLUM7 7/30/09 9:25 PM Page 112
112 JAVASCRIPT
HATA DENET‹M‹
8
try-catch Hata
Yakalama Bloklar› 113
try-catch -finally Yap›s› 115
throw 116
try-catch Hata
Yakalama Bloklar›
Muhtemel hata oluflabilecek kodlar try bloklar› aras›na yaz›l›r. E¤er
try bloklar› aras›ndaki kodlarda bir hata ile karfl›lafl›l›rsa, catch anah-
tar sözcü¤ünün alt›ndaki komut blo¤u çal›fl›r. Yani try bloklar› aras›na
yazd›¤›n›z kodlarda hata oluflur ise kodlar›n çal›flt›r›lmas› durdurulur ve
catch blo¤una yaz›lan kodlar iflletilir.
try
{
// Hata oluşabilecek Kodlar
}
+JAVASCRIPT-BOLUM8 7/30/09 9:26 PM Page 114
114 JAVASCRIPT
catch(err)
{
// Hata olduğunda çalışacak Kodlar
}
try, catch anahtar sözcükleri küçük harf ile yaz›lmal›d›r. err paramet-
resiyle hata ile ilgili bilgilere ulaflabilirsiniz.
<script type=”text/javascript”>
try
{
var a=b*3;
alert(a);
}
catch(err)
{
alert(“hata”);
}
</script>
mesaj› görüntülenecektir.
Örnek
<script type=”text/javascript”>
try
{
hesapla();
+JAVASCRIPT-BOLUM8 7/30/09 9:26 PM Page 115
try
{
// Hata oluşabilecek kodlar
}
catch(err)
{
// Hata oluştuğunda çalışacak kodlar
}
finally
{
// Hata oluşsada oluşmasada çalışacak kodlar
}
Örnek
<script type=”text/javascript”>
try
{
var dizi1=new Array(“a”,”b”,”c”,”d”);
var sondizi=dizi1.concat(dizi2);
}
catch(err)
+JAVASCRIPT-BOLUM8 7/30/09 9:26 PM Page 116
116 JAVASCRIPT
{
alert(err.message);
// sonuç:”dizi2 tanımlanmamış”
}
finally
{
alert(“Bu bloktaki kodlar her durumda çalışacak”);
}
</script>
throw
Bu anahtar sözcü¤ünü kullanarak try blo¤u içinde kendimiz özel istis-
nai durumlar yani hata durumlar› oluflturabiliriz. Bu anahtar sözcük try
bloklar› içerisinde kullan›lmal›d›r.
Örnek
<script type=”text/javascript”>
try
{
for(var i=0;i<10;i++)
{
if(i==4)
{
throw(“i=4 hatası”);
alert(“Hata sonrası kodlar”);
}
}
}
catch(err)
{
alert(err)
}
</script>
+JAVASCRIPT-BOLUM8 7/30/09 9:26 PM Page 117
Sonuç
118 JAVASCRIPT
Örnek
<script type=”text/javascript”>
try
{
var sayi1=prompt(“sayi1 giriniz?”);
var sayi2=prompt(“sayi2 giriniz?”);
var hata=new Object();
hata.mesaj=”sonuç:0”;
hata.uzunmesaj=”Çarpanlardan biri yada ikisi 0 değerini almış”;
if(sayi1==0||sayi2==0)
{
throw(hata);
}
alert(“Çarpım Sonucu \n”+sayi1*sayi2);
}
catch(err)
{
alert(err.mesaj+”\n”+err.uzunmesaj);
}
</script>
JAVASCRIPT
9
NESNELER‹
Javascript Nesnesi Yaratmak 120 Javascript Haz›r Nesneler 125
Nesne (Object) Yaratmak 120 String Nesnesi 125
Oluflturdu¤umuz Nesnelere Array Nesnesi 126
Özellik Eklemek 121 Boolean Nesnesi 126
Oluflturdu¤umuz Nesnelere Date Nesnesi 127
Metod (Fonksiyon) Eklemek 123
Number Nesnesi 134
Math Nesnesi 136
120 JAVASCRIPT
Nesnelere örnek olarak bir araba firmas›n›n üretti¤i araba bir nesne, di-
¤er araba firmas›n›n üretti¤i araba di¤er nesne olarak adland›r›labilir.
Ama bu iki nesnede araba s›n›f›n›n ortak özelliklerini ve metodlar›n›
kullanacakt›r.
Özellik asl›nda nesne ile ilgili bilgileri tafl›yan birer de¤iflkenden baflka
bir fley de¤ildir.
Nesneadı.Metod()
Örne¤in;
var my_dizi=new Array(1,2,3);
Hemen dikdörtgen isimli bir nesne oluflturarak konunun daha iyi an-
lafl›lmas›n› sa¤layal›m. Dikdörtgen nesnesinin en ve boy özellikleri bu-
lunur. Bu nesneyi oluflturmak için ilk önce bafllang›ç fonksiyonunu
oluflturmam gerekecek.
function dikdörtgen(en,boy)
{
this.en=en;
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 121
this.boy=boy;
}
Dikkat edilirse bafllang›ç fonksiyonu ad› nesne ad›na eflit yani dikdört-
gen, bu fonksiyon d›flar›dan iki tane parametre almakta bu parametreler
nesneye özellik olarak atanmaktad›r.
Oluflturdu¤umuz Nesnelere
Özellik Eklemek
Yukar›da anlat›ld›¤› gibi nesnelere özellikler bafllang›ç fonksiyonu ile
atan›r. Örne¤in grafders isimli bir nesne olufltural›m. Burada bu dersin 3
s›nav› oldu¤unu düflünürsek y1, y2, y3 özellikleri olaca¤›n› varsayal›m.
function grafders(y1,y2,y3)
{
this.y1=y1;
this.y2=y2;
this.y3=y3;
}
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 122
122 JAVASCRIPT
Örnek
<script type=”text/javascript”>
function dikdörtgen(en,boy)
{
this.en=en;
this.boy=boy;
}
var d1=new dikdörtgen(12,2);
var d2=new dikdörtgen(2,3);
d1.renk=”mavi”;
document.write(d1.renk);
// sonuç:mavi
</script>
Oluflturdu¤umuz Nesnelere
Metod (Fonksiyon) Eklemek
Bir nesne için metod asl›nda nesne özelliklerini kullanarak ifllem yapan
fonksiyonlardan baflka bir fley olmayacakt›r.
Örnek
<script type=”text/javascript”>
function dikdörtgen(en,boy)
{
this.en=en;
this.boy=boy;
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 124
124 JAVASCRIPT
}
var d1=new dikdörtgen();
d1.en=23;
d1.boy=2;
document.write(“d1 alanı =” + d1.en*d1.boy);
</script>
function dikdörtgen(en,boy)
{
this.en=en;
this.boy=boy;
this.alan=function alan(){
return this.en*this.boy;
}
}
var d1=new dikdörtgen();
d1.en=23;
d1.boy=2;
document.write(“d1 alanı =” +d1.alan());
</script>
Örnek
<script type=”text/javascript”>
// başlangıç (yapıcı) fonksiyon
function dikdörtgen(en,boy)
{
this.en=en;
this.boy=boy;
}
var d1=new dikdörtgen();
var d2=new dikdörtgen(2,3);
// d1,d2 nesneleri dikdörtgen nesnesinden türetilmiştir.
d1.alan=function alan(){
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 125
return this.en*this.boy;
}
// sadece d1 nesnesi için geçerli olacak alan() metodu
tanımlanmıştır
d1.en=23;
d1.boy=2;
Dikkat edilirse burada d1 nesnesi için özel yani sadece d1 nesnesi için
çal›flacak bir metodu bafllang›ç fonksiyonu d›fl›nda tan›mlad›k. Dikdört-
gen nesnesinden türetilen di¤er nesneler d1 için tan›mlad›¤›m alan()
isimli bu metodu kullanamazlar.
Str›ng Nesnesi
Javascript’te string veri türünde bir de¤iflken oluflturdu¤unuzda bu de-
¤iflken asl›nda string nesnesinden türetilmifl bir nesne olur. String nes-
nesinin tüm özellik ve metodlar› kullan›labilir.
document.write(String.fromCharCode(65));
// sonuç: A
126 JAVASCRIPT
Array Nesnesi
Dizi tan›mlarken asl›nda Javascript’te var olan Array nesnesinden bir
örnek oluflturmufl oluruz. Array nesnesinin tüm özellik ve metodlar›n›
yeni oluflturdu¤umuz dizide kullanmam›z mümkündür. Array nesnesi
ile ilgili özellik ve metodlar› Diziler konusunda incelemifltik.
Boolean Nesnesi
Javascript’te boolean veri türünde bir de¤iflken oluflturmuflsan›z, bu de-
¤iflken asl›nda boolean nesnesinden türetilmifl demektir. Yani boolean
nesnesinin tüm özellik ve metodlar›n› kullanabilirsiniz.
var a=true;
if(a.constructor==Boolean)
{
alert(“Boolean nesnesi”);
}
if(a.constructor==String)
{
alert(“String nesnesi”);
}
if(a.constructor==Date)
{
alert(“Date nesnesi”);
}
Date Nesnesi
Javascript’te tarih ve zamanla ilgili ifllemler yapmak için kullan›l›r.
document.write(Date());
// Bilgisayara ait bu günün tarih ve saat bilgisini döndürür.
Sat Apr 25 21:36:26 2009
128 JAVASCRIPT
Örnek
<script type=”text/javascript”>
var tarih=new Date();
var gunler=new Array();
gunler[0]=”Pazar”;
gunler[1]=”Pazartesi”;
gunler[2]=”Salı”;
gunler[3]=”Çarşamba”;
gunler[4]=”Perşembe”;
gunler[5]=”Cuma”;
gunler[6]=”Cumartesi”;
/*
oluşturduğum gunler dizisinde türkçe gün isimleri var
pazar metninin dizi içerisindeki indeks
numarası 0 olacaktır.
*/
document.write(gunler[tarih.getDay()]);
</script>
Örnek
Y›l, ay, gün, saat ve dakika bilgilerini Türkçe metin olmak kayd›yla
sayfaya yazd›ral›m:
<script type=”text/javascript”>
// Date() nesnesi oluşturalım
var tarih=new Date();
// aylar isimli dizi oluşturalım
var aylar=new Array();
aylar[0]=”Ocak”;
aylar[1]=”Şubat”;
aylar[2]=”Mart”;
aylar[3]=”Nisan”;
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 130
130 JAVASCRIPT
aylar[4]=”Mayıs”;
aylar[5]=”Haziran”;
aylar[6]=”Temmuz”;
aylar[7]=”Ağustos”;
aylar[8]=”Eylül”;
aylar[9]=”Ekim”;
aylar[10]=”Kasım”;
aylar[11]=”Aralık”;
// gunler isimli bir dizi oluşturalım
var gunler=new Array();
gunler[0]=”Pazar”;
gunler[1]=”Pazartesi”;
gunler[2]=”Salı”;
gunler[3]=”Çarşamba”;
gunler[4]=”Perşembe”;
gunler[5]=”Cuma”;
gunler[6]=”Cumartesi”;
document.write(“Bugün : “ + aylar[tarih.getMonth()] + “ “ +
tarih.getFullYear() + “ / “ + gunler [tarih.get-
Day()]+”<br>” );
document.write(“Saat “ + “ “ + tarih.getHours() + “:” +
tarih.getMinutes());
</script>
Sonuç
Bugün : May›s 2009 / Cumartesi
Saat: 12:25
NOT UTC (Universal Coordinated Time) Evrensel saat koordinat› bir zaman
standart›d›r. Javascript’te bu zaman standart›n› kullanabilirsiniz.
y›l, ay, gün, saat, dakika, saniye ve milisaniye belirterek Date nesnesi
oluflturabilirsiniz. Bilgilerin yaz›l›fl s›ras› afla¤›da verilmifltir.
var nesneadı = new Date(year,month,date,hour,min,sec,ms)
setDate(): Tarih isimli Date nesnesinin içerdi¤i tarihe ait gün bilgisi-
ni ayarlamaya yarar.
132 JAVASCRIPT
setFullYear(): Tarih isimli Date nesnesinin içerdi¤i tarihe ait y›l, ay,
gün bilgilerini ayarlamaya yarar.
var tarih=new Date();
tarih.setFullYear(1999,11,12);
/*
tarih isimli Date nesnesinin içerdiği
tarihe ait yıl,ay,gün bilgileri değiştirildi
*/
document.write(tarih);
Sonuç
Sun Dec 12 1999 12:53:18 GMT+0200 (GTB Standart Saati)
setHours(): Tarih isimli Date nesnesinin içerdi¤i saate ait olan saat,
dakika, saniye bilgilerini ayarlamaya yarar.
var tarih=new Date();
tarih.setHours(15,43,43);
/*
tarih isimli Date nesnesinin içerdiği
saat bilgisine ait olan saat,dakika,saniye bilgilerini
değiştirebiliriz
*/
document.write(tarih);
Sonuç
Sun May 16 2009 15:43:43 GMT+0300 (GTB Standart Saati)
setHours(saat, dakika, saniye, ms) s›ras›yla de¤erler girilmelidir.
setYear(): Tarih isimli Date nesnesinin içerdi¤i tarihin y›l bilgisini
ayarlamaya yarar.
var tarih=new Date();
tarih.setYear(2005);
document.write(tarih);
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 133
Sonuç
Mon May 16 2005 13:01:41 GMT+0300 (GTB Standart Saati)
setMonth(): Tarih isimli Date nesnesinin içerdi¤i tarihe ait ay,gün bil-
gilerini ayarlamaya yarar.
var tarih=new Date();
tarih.setMonth(11,12);
document.write(tarih);
Sonuç
Sat May 16 2009 14:43:12 GMT+0300 (GTB Standart Saati)
setMinutes(dakika,saniye,ms) s›ras›yla de¤erler girilmelidir.
toLocaleDateString()
var tarih=new Date();
document.write(tarih.toLocaleDateString());
// tarih Date nesnesinin içerdiği tarihi string
// veri tütünde özet olarak döndürür.
Sonuç
Saturday, May 16 2009
toLocaleTimeString()
var tarih=new Date();
document.write(tarih.toLocaleTimeString());
// tarih Date nesnesinin içerdiği saati string
// veri türünde özet olarak döndürür.
Sonuç
13:08:58
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 134
134 JAVASCRIPT
toString()
var tarih=new Date();
document.write(tarih.toString());
// tarih Date nesnesinin içerdiği tarih/saati string
// veri tütünde özet olarak döndürür.
Sonuç
Sat May 16 2009 13:15:29 GMT+0300 (GTB Standart Saati)
Number Nesnesi
Javascript’te number veri türüne sahip bir de¤iflken oluflturdu¤unuzda
bu de¤iflken Number nesnesinden türetilmifl bir nesne olacakt›r.
Özellik Aç›klama
constructor Nesnesin hangi nesneden türetildi¤ini verir.
MAX_VALUE Javascript’te bir number de¤iflkene atanabilecek
pozitif en büyük say›.
MIN_VALUE Javascript’te number bir de¤iflkene atanabilecek
negatif en küçük say›.
NaN Not a Number
NEGATIVE_INFINITY MIN_VALUE de¤erinden küçük say›lar› temsil eder.
POSITIVE_INFINITY MAX_VALUE de¤erinden büyük say›lar› temsil eder.
prototype Özellik, metod eklemek için kullan›l›r.
Örnek
<script type=”text/javascript”>
document.write(Number.MAX_VALUE);
</script>
1.7976931348623157e+308
Örnek
<script type=”text/javascript”>
document.write(Number.MIN_VALUE);
</script>
Javascript’te number veri türüne sahip bir de¤iflken negatif olarak afla-
¤›daki say›dan daha küçük bir de¤er alamaz.
5e-324
Örnek
<script type=”text/javascript”>
var say=2*(Number.MAX_VALUE);
if(say==Number.POSITIVE_INFINITY)
{
alert(“say değişkeni;\nKullanılabilir pozitif değerden büyük”);
}
</script>
Metod Aç›klama
toFixed() Ondal›kl› say›larda kullan›l›r. Virgülden sonra kaç karakter
gösterilece¤i ayarlan›r.
toPrecision() Ondal›kl› say›larda toplam basamak say›s›n› ayarlamak için
kullan›l›r. (.) nokta hariç
toString() De¤iflkenin de¤erini string olarak döndürür.
valueOf() De¤iflkenin de¤erini geriye döndürür.
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 136
136 JAVASCRIPT
Örnek 1
<script type=”text/javascript”>
var num=10.32424;
alert(num.toFixed(2));
// sonuç:10.32
</script>
Örnek 2
<script type=”text/javascript”>
var num=10.32424;
alert(num.toPrecision(3));
// sonuç:10.3
</script
Math Nesnesi
Javascriptin matematiksel ifllemleri yapmak için kullan›lan nesnesidir.
Metod Aç›klama
abs(x) x’in mutlak de¤erini döndürür.
Örnek
<script type=”text/javascript”>
var say=Math.abs(-12);
document.write(say);
// sonuç:12
</script>
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 137
Metod Aç›klama
acos(x) -1, +1 aras›nda bir say› girilebilir.
asin(x) Girilen de¤erin radyan karfl›l›¤›n› verir.
atan(x)
ceil(x) x kesirli say›s›n› yuvarlamak için kullan›l›r.
Girilen de¤eri kendisinden bir büyük tamsay›ya
yuvarlamak için kullan›l›r.
Örnek
<script type=”text/javascript”>
var say=Math.ceil(12.40);
var say_1=Math.ceil(-12.40);
document.write(say +”|”+ say_1);
// sonuç:13|-12
</script>
cos(x) x say›s›n›n belirlenen aç› de¤erlerini
sin(x) radyan olarak döndürür.
tan(x)
138 JAVASCRIPT
Metod Aç›klama
log(x) Girilen say›n›n 10 taban›nda logaritmas›n› al›r.
max(x,y) Girilen 2 de¤erden büyük olan› döndürür.
Örnek
<script type=”text/javascript”>
var say=Math.max(12,2);
document.write(say);
// sonuç:12
</script>
function degis()
{
var say1=Math.random();
document.getElementById(“yaz”). â
innerHTML=say1;
t=setTimeout(“degis()”,1000);
}
</script>
</head>
<body onload=”degis()”>
<div id=”yaz” style=” â
background-color:#FFC; â
visibility:visible; width:150px; â
height:25px”></div>
</body>
</html>
140 JAVASCRIPT
Örnek
Javascript ile güvenlik resmi oluflturma, güvenlik resmi form ele-
manlar›na girifl yap›l›rken giriflin bir kullan›c› (insan) taraf›ndan yap›l-
mas›n› sa¤lar.
Yani kullan›c› resim içerisindeki yaz›y› metin kutusuna girmek zorun-
dad›r. Bunu herhangi bir program yapamaz.
<script type=”text/javascript”>
function degis()
{
var str=””;
/*
üreteceğim 6 basamaklı karakter gurubunu saklamak için
str isimli bir değişken oluşturdum ve ilk anda içi boş.
*/
for(var i=0;i<6;i++)
{
// 6 adet rasgele karakter üreteceğimden döngü oluşturdum
var say=Math.random();
// döngü her çalıştığında rasgele bir sayı
// üretilecek ve bu sayı say isimli değişkene atanacak
if(Math.round(say)==0)
{
str=str+String.fromCharCode(48+9*Math.random());
}else{
str=str+String.fromCharCode(65+25*Math.random());
}
}
document.getElementById(“yaz”).innerHTML=str;
// str değişkeni içerisindeki karakter gurubu(6 adet karakter)
div içerisine yazıldı
}
</script>
</head>
<body >
<div id=”yaz”></div><br />
<input type=”button” value=”değiştir” onclick=”degis()” />
</body>
</html>
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 142
142 JAVASCRIPT
Daha sonra bir koflul ifadesi kullanarak daha önceden oluflturdu¤um say
isimli de¤iflkeni Math.round() ile yuvarlay›p (yuvarlama sonucu 0 ya
da 1 olabilir) oluflan bu de¤erin 0’a eflit olup olmad›¤›n› kontrol ettim.
E¤er bu de¤er 0’a eflit ise say›sal bir karakter, de¤ilse büyük harf flek-
linde bir karakter üretilecektir.
oldu¤unu biliyoruz.
String.fromCharCode(48+9*Math.random())
Bu durumda str isimli string de¤iflkene 0-9 aras›nda bir rakam eklen-
mifl olur.
à Math.round(say) deyimi geriye 1 de¤erini döndürürse bu sefer el-
se alt›ndaki komutlar çal›flacak ve:
String.fromCharCode(65+25*Math.random())
Bu durumda str isimli string de¤iflkene A-Z aras›nda bir karakter ek-
lenmifl olur. Sonuçta döngü 6 defa tekrarlanaca¤›ndan 6 adet say› yada
büyük harf içeren karakter elde edilmifl olur. Elde edilen bu de¤er div
içerisine yazd›r›l›r.
+JAVASCRIPT-BOLUM9 7/30/09 9:54 PM Page 144
144 JAVASCRIPT
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 145
DÜZENL‹
10
‹FADELER
(RegExp NESNES‹)
RegExp Nesnesi Olufltural›m 146 Nesne Metodlar› 152
Nesne Özellikleri 147 Düzenli ‹fade Olufltururken
Kullan›lan Özel Karakterler 157
146 JAVASCRIPT
ya da
difade=/kalıp/ayarlar;
Bu parametreler:
g-(global)
Karakter dizisinin tamam›n›n karfl›laflt›rmada kontrol edilip edilmeye-
ce¤ini ayarlamak için kullan›l›r. Yani string içerisinde düzenli ifadeyle
eflleflen tüm metin parçalar›n› aramak için gereklidir.
›-(›gnoreCase)
String içerisinde düzenli ifadeye uyan metin parçalar›yla eflleflmeler ya-
p›l›rken büyük-küçük harf olma durumunun dikkate al›nmamas› için i
parametresi kullanmal›s›n›z.
Örnek
m-(mult›l›ne)
Birden fazla sat›ra sahip bir string içerisinde düzenli ifadeye uyan me-
tin parçalar› aranacak ise m parametresini kullanmal›s›n›z.
Nesne Özellikleri
global
String ile düzenli ifade karfl›laflt›r›l›rken string’in tamam›n›n kontrol
edilip edilmeyece¤ini baflka bir deyiflle ayarlar k›sm›nda g parametresi-
nin tan›mlan›p tan›mlanmad›¤›n› kontrol etmek için kullan›l›r.
Örnek
var str=”javascript Dersleri”;
var difade=new RegExp(“ri”,”i”);
if(difade.global)
{
document.write(“g paranetresi kullanılmış”);
}else
{
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 148
148 JAVASCRIPT
›gnoreCase
String içerisinde düzenli ifadeye uyan metin parçalar› aran›rken efllefl-
mede büyük-küçük harf durumuna dikkat edilip edilmeyece¤ini baflka
bir deyiflle ayarlar k›sm›nda i parametresinin tan›mlan›p tan›mlanmad›-
¤›n› kontrol etmek için kullan›l›r.
Örnek
var str=”javascript Dersleri”;
var difade=new RegExp(“RI”,”i”);
if(difade.ignoreCase)
{
document.write(“i paranetresi kullanılmış”);
}else
{
document.write(“i paranetresi kullanılmamış”);
}
mult›l›ne
Birden fazla sat›ra sahip bir string içerisinde düzenli ifadeyle eflleflen
metin parçalar› aramak için m parametresini kullan›yorduk. Bu paramet-
renin kullan›l›p kullan›lmad›¤›n› boolean olarak geriye döndürür.
›nput
String içerisinde düzenli ifadeyle eflleflen metin parças› var ise stringin
tamam›n› geriye döndürür.
Örnek
var str=”javascript Derslerim”;
var difade=new RegExp(“ri”,”i”);
difade.test(str);
document.write(RegExp.input);
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 149
Sonuç
javascript Derslerim
last›ndex
String içerisinde düzenli ifadeyle eflleflen metin parças›ndan sonraki ilk
karakterin index numaras›n› verir. Geriye dönen de¤er bir sonraki ara-
man›n bafllayaca¤› index numaras›d›r.
Örnek
javascRIpt Derslerim
index numaras› 8
Örnek
var str=”javascript Derslerim”;
var difade=new RegExp(“ri”,”g”);
for(var i=0;i<2;i++)
{
difade.test(str); document.write(difade.lastIndex+”<br>”);
}
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 150
150 JAVASCRIPT
Sonuç
8
19
fleklinde olacakt›r.
lastMatch
String içerisinde düzenli ifadeyle eflleflen son metin parças›n› geriye
döndürür.
Örnek
var str=”javascript Derslerim”;
var difade=new RegExp(“er”,”g”);
difade.test(str);
document.write(RegExp.lastMatch);
// sonu: er
leftContext
Bir string içerisinde düzenli ifade ile eflleflen metin parças›n›n solunda
kalan k›sm› geriye döndürür.
Örnek
var str=”javascript Derslerim”;
var difade=new RegExp(“ri”,”g”);
difade.test(str);
document.write(RegExp.leftContext);
// sonu: javasc
Örnek
Sonuç
javasc
javascript Dersle
r›ghtContext
Bir string içerisinde düzenli ifade ile eflleflen metin parças›n›n sa¤›nda
kalan k›sm› geriye döndürür.
Örnek
Sonuç
pt Derslerim
m
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 152
152 JAVASCRIPT
Nesne Metodlar›
comp›le ()
Oluflturdu¤unuz düzenli ifadeyi de¤ifltirmek için compile() metodunu
kullanabilirsiniz.
Örnek
<script type=”text/javascript”>
var str=”javascript Derslerim”;
var difade=new RegExp(“web”,”g”);
if(difade.test(str))
{
alert(“eşleşme var”);
}
/*
yukarıdaki if bloğu içerisine yazılmış kodlar
çalışmaz çünkü difade.test(str) ifadesi bir eşleşme
olmadığından geriye false değeri döndürür.
*/
difade.compile(“derslerim”,”i”);
if(difade.test(str))
{
alert(“Düzenli ifade değiştirildi\nEşleşme var”);
}
</script>
exec ()
String içerisinde düzenli ifade ile eflleflme olup olmad›¤›n› kontrol ede-
rek var olan eflleflmeleri dizi olarak geri döndürür.
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 153
Örnek
<script type=”text/javascript”>
var str=”javascript Derslerim”;
var difade=new RegExp(“script”,”g”);
document.write(difade.exec(str));
// sonuç:script
</script>
String içerisinde düzenli ifade ile eflleflen birden fazla metin parças› var
ise exec() metodu düzenli ifade ile eflleflen ilk metin parças›n› döndü-
rür. Düzenli ifade ile eflleflen tüm metin parçalar›na ulaflmak için bu me-
tod döngü içerisinde eflleflme kadar çal›flt›r›lmal› ya da düzenli ifade
içinde ( ) karakterleri kullan›larak eflleflmeler sonuçta döndürülecek di-
ziye eklenmelidir.
Örnek
<script type=”text/javascript”>
var str=”sacac aac”;
var difade=/(ac)+/;
var sonuc=difade.exec(str);
document.write(sonuc[0]+” “+sonuc[1]);
// sonuç:acac ac
</script>
test()
Bu metod string içerisinde düzenli ifadeyle eflleflen metin parçalar›n›n
var olup olmad›¤›n› test etmek için kullan›l›r. E¤er string içerisinde dü-
zenli ifadeyle eflleflen bir metin parças› varsa bu durumda bu metod ge-
riye true, e¤er bir eflleflme yoksa geriye false de¤erini döndürür.
düzenliifadeadı.test(düzenli ifadenin karşılaştırılacağı string)
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 154
154 JAVASCRIPT
Örnek
Örnek
Sonuç
8
19
search ()
String içerisinde düzenli ifadeyle eflleflen metin parçalar›n› arar. Bulur-
sa index numaras›n›, bir eflleflme bulamazsa -1 de¤erini geriye dön-
dürür.
Örnek
match ()
Bu metod string içinde düzenli ifadeyle eflleflen karakter katarlar›n› dizi
olarak geriye döndürür.
Örnek
Sonuç
kl,kl klll
kl,kl,klll
fleklinde olacakt›r.
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 156
156 JAVASCRIPT
replace()
String içerisinde düzenli ifadeyle eflleflen karakter katar›n› baflka bir me-
tinle de¤ifltirmeye yarar.
Örnek
spl›t()
String içinde düzenli ifade ile eflleflen karakter katarlar›n› ay›raç olarak
kullanarak metni böler ve böldü¤ü metin parçalar›n› dizi olarak geriye
döndürür.
Örnek
var str=”javascript dersleri kitabı konuları”;
var difade=/\W+/g;
document.write(str.split(difade));
document.write(str2);
// sonuç:javascript,dersleri,kitab,konular
Örnek
var str=”javascript-Dersleri-kitabı”;
var difade=/-/g;
var my_dizi=str.split(difade);
document.write(my_dizi[0]+”-”+my_dizi[1]+”-”+my_dizi[2]);
// sonuç:javascript-Dersleri-kitabı
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 157
Örnek
$ Karakteri
Karakter dizisinin sonu ile düzenli ifadeyi karfl›laflt›rmak için kullan›l›r.
Yani eflleflme gerçekleflmesi için metin parças›n›n karakter dizisinin so-
nunda olmas› ve düzenli ifadeye uygun olmas› gerekir.
Örnek
158 JAVASCRIPT
document.write(difade.lastIndex);
// sonuç: düzenli ifade string içerisindeki
// son “pt” karakterleri ile eşleşeceğinden sonuç:31
\b Karakteri
String ile düzenli ifade aras›nda eflleflmeler string içerisindeki kelimele-
rin bafllang›c› ya da sonunda aran›r.
Örnek
“javaderscript dersleri”
4 15
Asl›nda string içerisinde “ders” metni ile eflleflen 2 metin parças› bulun-
makta ama düzenli ifadeyi \bders fleklinde oluflturdu¤umuzdan string
içerisinde eflleflme için sadece kelime bafllar› ve sonlar› kontrol edilecek-
tir. Bu durumda e¤er \b karakteri kullan›lmasayd› geriye dönen de¤er 4
olacakt›. Fakat \b karakteri kullan›ld›¤›ndan geriye 15 de¤eri döndü.
\B Karakteri
String ile düzenli ifade aras›ndaki eflleflmeler kelime bafl› ya da sonu
haricinde kelime içinde aran›r.
Örnek
document.write(str.search(difade));
// sonuç:4
NOT hat›rlama
str.search(difade) ifadesi string içinde düzenli ifade ile eflleflen metin
parçalar›n›n ilk karakterinin index numaras›n› geriye döndürür.
?= Karakteri
Bir string içinde belirlenen karakter dizisinin önünde düzenli ifade ile
eflleflebilecek metin gruplar› arar.
Söz dizimi:
new RegExp(“düzenli ifade(?=karakter katarı)”)
ya da
/düzenli ifade(?=karakter katarı)/
Örnek
var str=”javadersscript dersleri javascript”;
var reg_text=new RegExp(“pt(?= ders)”);
document.write(str.search(reg_text));
// sonuç:12
Burada ders karakter dizisinin önünde düzenli ifade ile eflleflen metin
parças›;
160 JAVASCRIPT
?! Karakteri
String içerisinde belirledi¤imiz karakter dizisi ile takip edilmeyen me-
tinler düzenli ifade ile efllefltirilecek ise kullan›l›r.
Söz dizimi:
new RegExp(“düzenli ifade(?!karakter katarı)”)
ya da
/düzenli ifade(?!karakter katarı)/
Örnek
var str=”javadersscript dersleri javascript”;
var reg_text=new RegExp(“pt(?! ders)”);
document.write(str.search(reg_text));
// sonuç:32
Karakter Aç›klama
\0 Null karakter ile eflleflir.
\n Yeni sat›r karakteri ile eflleflir.
Örnek
var str=”fileInfo\nSınıfı”;
var reg_text=new RegExp(“\n”);
ocument.write(reg_text.test(str));
// sonuç:true
// string içerisinde yeni satır karakteri olduğundan
// eşleşme gerçekleşti
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 161
Örnek olarak yeni sat›r karakterinden sonraki karakterleri bir alt sat›ra
yazan basit bir uygulama yapal›m.
var str=”fileInfo\nSınıfı”;
var reg_text=new RegExp(“\n”);
reg_text.test(str);
document.write(RegExp.leftContext+”<br>”);
document.write(RegExp.rightContext);
Sonuç
fileInfo
S›n›f›
162 JAVASCRIPT
var str=”abcdefg01234”;
var reg_text=/[a-c0-3]/g;
document.write(str.match(reg_text));
// sonuç:a,b,c,0,1,2,3
164 JAVASCRIPT
Tekrarlama Miktarlar›n›
Ayarlayan Karakterler
Tekrarlama miktar›n› belirleyen karakterler düzenli ifade içinde kendin-
den önce gelen karakter ya da özel karakterin kaç defa tekrarlanm›fl ol-
mas› gerekti¤ini belirtir.
Karakter Aç›klama
{x} x defa tekrarlanm›fl olmas› gerekir
Örnek
var str=”javaaascript dersleri aa”;
var reg_text=/a{3}/g;
document.write(str.match(reg_text));
// sonuç:aaa
Burada düzenli ifademiz a{3} bu a karakterinin 3 defa tekrarlanm›fl
olmas› anlam›na gelir. String içerisinde düzenli ifadeyle eflleflen
metin parças› “aaa”’d›r.
{x,} x defa ya da daha fazla tekrarlanm›fl olmas› gerekir.
Örnek
var str=”javaaascript dersleri aaaaaaa aaaa”;
var reg_text=/a{3,}/g;
document.write(str.match(reg_text));
// sonuç:aaa,aaaaaaa,aaaa
Ters bölü (\) karakteri, pefli s›ra gelen karakterin özel bir karakter olup
olmad›¤›n› ayarlamak için kullan›l›r.
Örne¤in:
• /d/: düzenli ifadesinde d normal bir karakter olarak kullan›lm›flt›r. Fa-
kat özel karakter olarak kullanmak isteseydim /\d/ fleklinde yazmam
gerekecekti.
• Ayn› zamanda ters bölü özel olan bir karakteri normal karaktermifl gibi
kullanmaya yarar. /e+/ yazarsam e karakterinin 1 ya da daha fazla kez
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 166
166 JAVASCRIPT
Grup Oluflturma ve
Grup ‹çi Karakterler
Karakter Aç›klama
( ) Eflleflmeleri daha sonra kullanmak için haf›zada saklar ve
eflleflmelere $1, $2 fleklinde ulaflabilirsiniz. Eflleflme sonucunda
geriye dizi döndüren bir metod kullan›yorsan›z eflleflmelerin
diziye eklenmesi için ( ) karakterlerini kullanmal›s›n›z.
Örnek
var str=”javascript dersleri konular”;
var difade=/(\w+)\s(\w+)\s(\w+)/;
var sonuc=str.replace(difade,”$1,$3,$2”);
document.write(sonuc);
//sonuç:javascript,konular,dersleri
Grup oluflturma karakterleri ile özel karakterler taraf›ndan ayn› anda ifl-
lem görecek, karakter gruplar› oluflturabilirsiniz.
var str=”derrrrrsleri”;
var difade=/er+/;
document.write(difade.exec(str));
// sonuç: errrrr
// + özel karakteri sadece kendisinden önceki karakter olan
//”r” karakteri için geçerlidir.
Örnek
var str=”1213131212”;
var difade=/(12)+/g;
document.write(str.match(difade));
// sonuç: 12,1212
// + özel karakteri sadece kendisinden önce kullanılan
// parantez içerisindeki karakterler için geçerlidir
168 JAVASCRIPT
Örne¤imizi çal›flt›ral›m;
@’dan önce bir metin grubu, sonra bir metin grubu, daha sonra nokta
daha sonra bir metin grubu fleklinde olacakt›.
170 JAVASCRIPT
}
}else{
alert(“Tarih formatına Uygun değil”);
}
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 171
</script>
</head>
<body>
</body>
</html>
Bir ya da iki tane rakam sonra tire sonra 1 ya da 2 tane rakam, daha son-
ra tire ve daha sonra 4 rakam format›ndaki verilerle eflleflece¤i görül-
mektedir. Yukar›da anlat›lan formatta girilen metinler düzenli ifade ile
eflleflir.
E¤er efllefliyorsa;
172 JAVASCRIPT
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function tarihtest(str)
{
var difade=/^\d{1,2}-\d{1,2}-\d{4}$/;
var difade2=/-/;
if(difade.test(str))
{
var dizi=str.split(difade2);
// 9,6,2009 değerleri dizi değişkenine eleman olarak atandı
if(dizi[0]>31 || dizi[1]>12)
{
return “Gün ve ay bilgileri yanlış”;
}
var gun=dizi[0];
var ay=dizi[1];
var yil=dizi[2];
var tarih=new Date(yil,ay-1,gun);
if(tarih.getDate()==gun && tarih.getMonth()+1==ay &&
tarih.getFullYear()==yil)
{
return str+” “+”Tarih formatına uygun”;
}else{
return str+” “+”Tarih formatına uygun değil”;
}
}else{
return str+” “+”Tarih formatına uygun değil”;
}
}
document.write(tarihtest(“50-12-2009”));
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 173
</script>
</head>
<body>
</body>
</html>
à str içindeki metin düzenli ifade ile eflleflmiyorsa sayfaya “Tarih for-
mat›na uygun de¤il” fleklinde bir yaz› yazd›r›lacakt›r.
! D‹KKAT!
Yukar›daki uygulamada örne¤in kullan›c› ay k›sm›na 2 yazd› ve gün k›sm›-
na 31 yazd›. Bu da bizim için yanl›fl olacakt›r. Çünkü flubat ay› 28 günden
oluflur. Kullan›c›n›n girdi¤i ay de¤erine göre gün de¤erinin belirli bir de¤e-
ri afl›p aflmad›¤›n› kontrol edebiliriz.
174 JAVASCRIPT
{
return str+” “+”Tarih formatına uygun”;
}else{
return str+” “+”Tarih formatına uygun değil”;
}
}else{
return str+” “+”Tarih formatına uygun değil”;
}
}
document.write(tarihtest(“25-2-2009”));
</script>
</head>
<body>
</body>
</html>
Aylar›n sahip olduklar› gün say›s›n› saklamak için aylar isimli bir dizi
oluflturulmufltur. Dikkat edilmesi gereken aylar[0] = “ocak” olmas›-
d›r, yani ocak metninin (ay›n›n) index numaras› “0” olacakt›r.
if(2 = =2 && gun > aylar[1]) birinci flart sa¤lanm›flt›r. Burada ikinci
flarta dikkat etmenizi istiyorum;
aylar[1] = 28;
if(2= = 2 && gun > 28 ), gun de¤iflkeni içerisindeki bilgi 28’den bü-
+JAVASCRIPT-BOLUM10 7/30/09 9:58 PM Page 176
176 JAVASCRIPT
E¤er aya göre gün bilgileri do¤ru ise for döngüsü içindeki if deyimi
çal›flt›r›lmayacakt›r.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 177
TARAYICI
11
NESNELER‹
window Nesnesi 177 location Nesnesi 204
Nesne Özellikleri 177 Nesne Özellikleri 205
Nesne Metodlar› 181 Nesne Metodlar› 210
navigator Nesnesi 198 document Nesnesi 211
Nesne Özellikleri 198 Nesne Özellikleri 211
3. screen Nesnesi 200 Nesne Metodlar› 216
Nesne Özellikleri 200 Event Nesnesi 221
history Nesnesi 202 Nesne Özellikleri 221
Nesne Özellikleri 202
Nesne Metodlar› 202
w›ndow Nesnesi
DOM yap›s›nda hiyerarflik olarak en üstte bulunan nesnedir. Taray›c›
penceresini temsil etmektedir. Pencere nesnesi body, frameset etiketle-
rinden birini kulland›¤›n›zda otomatik olarak oluflacakt›r.
Nesne Özellikleri
defaultStatus
Pencerenin durum çubu¤unu temsil etmektedir. Durum çubu¤unda gös-
terilmesi için mesaj ayarlayabilir ya da var olan mesaj› alabilirsiniz.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 178
178 JAVASCRIPT
Örnek
<script type=”text/javascript”>
str=”javascript Dersleri”;
str+=” “;
var hiz=200;
function mesaj()
{
window.defaultStatus=str;
var txt=str.substring(1)+str.substring(0,1);
str=txt;
window.setTimeout(“mesaj()”,hiz);
}
mesaj();
</script>
Örnek
<script type=”text/javascript”>
str=”javascript Dersleri”;
var hiz=100;
var txt=””;
var i=0;
function mesaj()
{
if(i==str.length)
{
i=0;
txt=””;
}
txt+=str.substring(i,i+1);
window.defaultStatus=txt;
i++;
window.setTimeout(“mesaj()”,hiz);
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 180
180 JAVASCRIPT
}
mesaj();
</script>
name
Pencereye bir isim koymak için ya da var olan pencere ismini almak
için kullan›l›r.
outerHe›ght, outerW›dth
Taray›c› penceresinin d›fl yüksekli¤ine ya da geniflli¤ine ulaflabilir ya da
ayarlamak için kullanabilirsiniz. window.open() metodunda width,he-
ight ile ayn› ifllemi yapar.
closed
Aç›lan pencerenin kapat›l›p kapat›lmad›¤›n› geriye döndürür.
Nesne Metodlar›
Open ( )
Yeni bir pencere açmak için kullan›l›r.
window.open(“URL”,”name”,”özellikler”)
URL
Aç›lacak URL adresini belirtir. E¤er Bir URL vermezseniz içi bofl bir
pencere aç›l›r.Bu k›sma bir HTML sayfas› adresi ya da http:// ile bafl-
layan web sayfas› adresi yazabilirsiniz.
NAME
target özelli¤inin ayarlanmas› için kullan›l›r.
• _blank: Yeni bir pencerede içeri¤i açar.
• _parent: E¤er link çerçeve içerisinde ise içeri¤i üst çerçeve kümesinde
açar. Tüm çerçeveyi de¤ifltirir.
• _self: ‹çeri¤i, ayn› pencerede açar.
• _top: ‹çerik, ayn› pencerede en üstten bafllayarak aç›l›r.
• name: ‹smi olan herhangi bir frame içinde aç›l›r.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 182
182 JAVASCRIPT
Özellikler
Aç›lacak pencerenin özelliklerini ayarlayabilirsiniz. Belirtilen özellikler
aras›na virgül konmal›d›r. E¤er herhangi bir özellik belirtmemifl iseniz
aç›lacak pencere tüm özelliklere sahip olacakt›r. Özellik ya da özellik-
ler belirtmiflseniz aç›lacak pencere sadece belirtti¤iniz özellik ya da
özelliklere sahip olur.
directories: yes|no|1|0 Aç›lacak pencereye, ba¤lant›lar araç çubu¤u-
nun eklenip eklenmeyece¤ini ayarlamak için kullan›l›r.
fullscreen: yes|no|1|0 Aç›lacak pencerenin tam ekran modunda gös-
terilip gösterilmeyece¤ini ayarlamak için kullan›l›r.
location: yes|no|1|0 Adres çubu¤unun gösterilip gösterilmeyece¤ini
ayarlamak için kullan›l›r.
menubar: yes|no|1|0 Menü araç çubu¤unun gösterilip gösterilmeyece¤i-
ni ayarlamak için kullan›l›r.
scrollbars: yes|no|1|0 Kayd›rma çubuklar›n›n gösterilip gösterilme-
yece¤ini ayarlamak için kullan›l›r.
status: yes|no|1|0 Durum çubu¤unun gösterilip gösterilmeyece¤ini
ayarlamak için kullan›l›r.
toolbar: yes|no|1|0 Standart dü¤meleri yani navigasyon araç çubu¤u-
nun gösterilip gösterilmeyece¤ini ayarlamak için kullan›l›r.
titlebar: Yes|no|1|0 Tam ekran modunda bafll›k çubu¤unun gösterilip
gösterilmeyece¤ini ayarlamak için kullan›l›r.
resizable: yes|no|1|0 Aç›lacak pencerenin boyutlanabilir olup olmad›-
¤›n› ayarlamak için kullan›l›r.
width: Aç›lacak pencerenin geniflli¤ini ayarlamak için kullan›l›r. En
düflük 100 de¤eri verilebilir.
height: Aç›lacak pencerenin yüksekli¤ini ayarlamak için kullan›l›r. En
düflük 100 de¤eri verilebilir.
left: Pencerenin yataydaki pozisyonunu ayarlamak için kullan›l›r.
NOT Bu metodu bir referans ismi vererek afla¤›daki gibi kullanman›z da mümkündür.
Pencereadı = window.open(“URL”,”name”,”özellikler”)
Pencereadı: Aç›lacak pencerenin ad›, bu ad› kullanarak yeni açt›¤›n›z
pencere ile ilgili çeflitli özellik ve metodlar› kullanabilirsiniz.
Örnek 1
184 JAVASCRIPT
Örnek 2
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function open_page()
{
var str=”location=no,menubar=no,toolbar=no,status=no, â
resizable=no,width=300,height=100”;
yeni_sayfa=window.open(“”,””,str);
yeni_sayfa.document.write(“bu sayfa yeni oluşturuldu”);
// yeni_sayfa isimli bir pencere oluşturmuş olduk.
// yeni_sayfa pencere nesnesine document.write() metodunu kullanarak
// metin yazdırdık
}
</script>
</head>
<body>
<a href=”javascript:;” onclick=”open_page()”>Sayfayı Aç</a>
</body>
</html>
Örnek 3
Bir ana sayfam›z ve üç tane sayfam›z olsun. (js.html, css.html, d.html)
Ana sayfa üzerine aç›lan kutu ve buton yerlefltirelim. Kullan›c› gitmek
istedi¤i sayfay› aç›lan kutudan seçsin ve butona t›klad›¤›nda sayfa ayr›
bir pencerede aç›ls›n.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 185
Ana sayfa
close ( )
Mevcut pencereyi ya da isim verdi¤iniz baflka bir pencereyi kapatmak
için kullan›l›r.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 186
186 JAVASCRIPT
Örnek 1
Mevcut pencereyi kapatal›m.
Örnek 2
pencere.html isimli bir sayfam›z olsun ve bu sayfada:
Pencereyi aç butonuna t›kland›¤›nda
pencere aç›lacak, Pencereyi kapat
butonuna t›kland›¤›nda aç›lan pencere
kapanacak.
{
yeni_pencere=window.open(“”,”_blank”,”width=300,height=100”);
yeni_pencere.document.write(“açılan pencere”);
}
function close_page()
{
yeni_pencere.close();
}
</script>
</head>
<body>
<input type=”button” value=”Pencereyi aç” â
onclick=”open_page()” /><br />
<input type=”button” value=”Pencereyi kapat” â
onclick=”close_page()” />
</body>
</html>
Örnek 3
window nesnesinin closed özelli¤ini bir pencerenin kapat›l›p kapat›l-
mad›¤›n› anlamak için kullanmam›z mümkündür.
closed.html isimli sayfam›z:
Kodlar›m›z
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 188
188 JAVASCRIPT
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function closed()
{
if(yeni_pencere.closed==true)
{
document.getElementById(“yaz”).innerHTML=”pencere kapandı”;
}else
{
document.getElementById(“yaz”).innerHTML=”pencere açıldı”;
}
}
function open_page()
{
yeni_pencere=window.open(“”,”_blank”,”width=300,height=100”);
yeni_pencere.document.write(“açılan pencere”);
}
function close_page()
{
yeni_pencere.close();
}
</script>
</head>
<body>
<div style=”background-color:#CCC;width:200px;height:25px;”
id=”yaz”></div>
<input type=”button” value=”Pencereyi aç” â
onclick=”open_page()” /><br />
<input type=”button” value=”Pencereyi kapat” â
onclick=”close_page()” /><br />
<input type=”button” value=”closed Özelliği” â
onclick=”closed()” />
</body>
</html>
pr›nt ( )
Sayfay› yazd›rmak için kullan›lacak metoddur.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 189
Örnek
focus ( )
Mevcut pencere ya da aç›lan pencereye odaklanmak için kullan›lan me-
toddur.
blur( )
Mevcut pencere ya da aç›lan pencerenin odaklanmas›na son verir.
Örnek
(focus, blur) metodlar›n› inceleyelim.
uygulama.html
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 190
190 JAVASCRIPT
alert( )
Daha önceki konular›m›zda s›kça kulland›¤›m›z alert() metodu bir
mesaj kutusu oluflturmak için kullan›l›r.
192 JAVASCRIPT
prompt( )
Kullan›c›dan bilgi almak için bir girdi kutusu oluflturur.
prompt(“mesaj”,”varsayılan değer”)
prompt() metodu ile geriye gelen de¤er mutlaka bir de¤iflkene atanma-
l›d›r. E¤er varsay›lan de¤er yaz›lmazsa metin kutusu içerisinde “unde-
fined” tan›mlanmam›fl fleklinde bir yaz› görülecektir.
<script type=”text/javascript”>
var meslek=prompt(“mesleğiniz?”,”bilgisayar”);
</script>
<script type=”text/javascript”>
var num=prompt(“Bir sayı giriniz”,””);
if(num===5)
{
alert(‘Doğru’);
}
</script>
Conf›rm( )
Kullan›c›ya tamam ve iptal (yes, no) dü¤meleri olan bir mesaj kutusu
göstermek için kullan›l›r.
confirm(“mesaj”)
confirm() metodu geriye boolean veri türüne sahip bir de¤er döndür-
dü¤ünden bu de¤erin saklanmas› için bir de¤iflkene eflitlenmelidir. Kul-
lan›c› e¤er tamam dü¤mesine t›klam›fl ise geriye true, iptal dü¤mesine
t›klam›fl ise geriye false de¤eri dönecektir. Kullan›c›n›n yapt›¤› seçime
göre program ak›fl›n› de¤ifltirmek ya da farkl› ifllemler yapmak için kul-
lanabilirsiniz.
Örnek
<script type=”text/javascript”>
function page_print()
{
var secim=confirm(“sayfayı yazdırmak istiyormusunuz”);
if(secim)
{
window.print();
}
}
page_print();
</script>
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 194
194 JAVASCRIPT
res›zeBy( )
Pencerenin mevcut olan genifllik ve yüksekli¤ini sol üst köfleyi sabit tu-
tarak, istedi¤iniz miktarda artt›rmak/azaltmak için kullan›l›r.
resizeBy(width,height)
Örnek
<script type=”text/javascript”>
function resizeBy_page()
{
window.resizeBy(-300,-200);
}
</script>
</head>
<body>
<a href=”javascript:;” onclick=”resizeBy_page()”>resizeBy</a>
</body>
</html>
res›zeTo( )
Pencerenin genifllik ve yüksekli¤ini yeniden ayarlamak için kullan›l›r.
resizeTo(width,height)
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 195
Örnek
moveBy( )
Pencerenin mevcut sol üst köflesinin (orijin noktas›) koordinatlar›n› is-
tedi¤imiz miktarda artt›rmak/azaltmak için kullan›l›r.
window.moveBy(x,y)
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function moveBy_page()
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 196
196 JAVASCRIPT
{
window.moveBy(300,200);
}
</script>
</head>
<body>
<a href=”javascript:;” onclick=”moveBy_page()”>moveBy</a>
</body>
</html>
moveTo( )
Pencerenin sol üst köflesinin koordinatlar›n› yeniden ayarlamak için
kullan›l›r.
window.moveTo(x,y)
Örnek
NOT ‹nternet Explorer 7’de e¤er birden fazla sekme aç›k ise resizeBy, re-
sizeTo, moveBy, moveTo metodlar› çal›flmayacakt›r.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 197
ScrollBy( )
Yatayda ve dikeyde kayd›rma çubuklar›n›n mevcut konumunu artt›r-
mak/azaltmak için kullan›l›r.
window.scrollBy(h,v)
Örnek
198 JAVASCRIPT
ScrollTo( )
Yatayda ve dikeyde kayd›rma çubuklar›n› istedi¤imiz konuma ayarla-
mak için kullan›l›r.
window.scrollBy(yataydaki konumu , dikeydeki konumu)
nav›gator Nesnesi
Kullan›c› taray›c›s› hakk›nda bilgi almak için kullan›l›r. Taray›c›n›n ad›
ve di¤er bilgilere bu nesne ile ulaflmam›z mümkün olacakt›r.
Nesne Özellikleri
appCodeName
Taray›c›n›n kod ad›n› verir. Örne¤in; ‹nternet Explorer, Mozilla Fi-
refox, Opera vb taray›c›larda bu özelli¤in geriye döndürdü¤ü de¤er
(Mozilla) olacakt›r.
Örnek
<script type=”text/javascript”>
document.write(navigator.appCodeName);
// Mozilla
</script>
appName
Taray›c› ad›n› geriye döndürecektir.
Örnek
<script type=”text/javascript”>
document.write(navigator.appName);
// Microsoft Internet Explorer
</script>
appVers›on
Taray›c› versiyonunu (ve Platform hakk›nda bilgi) geriye döndürür.
Örnek
<script type=”text/javascript”>
document.write(navigator.appVersion);
</script>
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 199
Sonuç
4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727;
.NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
browserLanguage
Taray›c› dilini geriye döndürür.
Örnek
<script type=”text/javascript”>
document.write(navigator.browserLanguage);
// sonuç:tr
</script>
cook›eEnabled
Taray›c›n›n çerezleri destekleyip desteklemedi¤ini geriye döndürür.
E¤er true ise taray›c› çerezleri destekler, false ise desteklemez.
Örnek
Kullan›c› taray›c›s›n›n Internet Explorer versiyonunu bulma;
<script type=”text/javascript”>
// Microsoft Internet Explorer için versiyon denetlemesi
var versiyon=navigator.appVersion;
var difade=/(\d{1}\.\d{1};)/g;
var dizi=versiyon.match(difade);
var kisaversiyon=parseFloat(dizi[0]);
switch(kisaversiyon)
{
case 5.0:
alert(“Internet Explorer 5.0”);
break;
case 6.0:
alert(“Internet Explorer 6.0”);
break;
case 7.0:
alert(“Internet Explorer 7.0”);
break;
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 200
200 JAVASCRIPT
case 8.0:
alert(“Internet Explorer 8.0”);
break;
}
</script>
Bizim için önemli olan k›sm› yani versiyon bilgisi MSIE kelimelerinin
peflinden gelen bilgidir. Bu bilgiyi almak için düzenli bir ifade olufltur-
dum ve versiyon de¤iflkeni içerisinde düzenli ifadeyle eflleflen ilk metin
parças›n› ald›m. (7.0 ;) Burada noktal› virgül dikkatinizi çekmifltir.
Noktal› virgülü eflleflme için kulland›k. Bu noktal› virgülden kurtulmak
için parseFloat( ) fonksiyonunu kullanabilirsiniz. Daha sonra s›na-
malar› yap›p sonucu yazd›rd›k.
3. screen Nesnesi
Kullan›c›n›n görüntü ekran› hakk›nda bilgi almak için kullan›l›r.
Nesne Özellikleri
ava›lHe›ght
Kullan›c› ekran›n›n yüksekli¤ini geriye döndürür. (Görev çubu¤u hariç)
Örnek
<script type=”text/javascript”>
document.write(screen.availHeight);
// ekran çözünürlüğü:1280*800
// screen.availHeight geriye 770 değerini döndürür.
</script>
ava›lW›dth
Kullan›c› ekran›n›n geniflli¤ini geriye döndürür. (Görev çubu¤u hariç)
He›ght
Kullan›c› ekran›n›n yüksekli¤ini geriye döndürür.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 201
Örnek
<script type=”text/javascript”>
document.write(screen.height);
// ekran çözünürlüğü:1280*800
// screen.Height geriye 800 değerini döndürür.
</script>
W›dth
Kullan›c› ekran›n›n geniflli¤ini geriye döndürür.
Örnek
<script type=”text/javascript”>
document.write(screen.width);
// ekran çözünürlüğü:1280*800
// screen.width geriye 1280 değerini döndürür.
</script>
colorDepth
Kullan›c›n›n ekran› için tan›mlanm›fl renk derinli¤ini (renk kalitesini)
bit olarak geriye döndürür.
<script type=”text/javascript”>
document.write(screen.colorDepth);
// sonuç:32
</script>
Örnek
<script type=”text/javascript”>
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 202
202 JAVASCRIPT
Sonuç
Sistem Ekran›nda Kullan›lan alan = 1280*770
Sistem Ekran Çözünürlü¤ü = 1280*800
Sistem Ekran Derinli¤i = 32
h›story Nesnesi
Taray›c›n›n geçmifl (history) kayd›nda bulunan URL dizisi ile ilgili ifl-
lem yapmak için kullan›l›r. History kayd›nda bulunan URL’ler taray›c›
penceresi içinde önceden ziyaret edilmifl sayfa adresleridir. History
nesnesini window nesnesi ile beraber kullanman›z gerekir.
window.history
Nesne Özellikleri
length
Taray›c›n›n geçmifl kayd›nda bulunan URL say›s›n› geriye döndürür.
Örnek
<script type=”text/javascript”>
document.write(window.history.length);
</script>
Nesne Metodlar›
back()
Bu metod geçmifl kayd›nda bulunan bir önceki URL’yi taray›c›ya yük-
ler. Taray›c›da bulunan BACK (Geri) tuflu ile ayn› ifllemi yerine getirir.
forward()
Bu metod geçmifl kayd›nda bulunan bir sonraki URL’yi taray›c›ya yükler.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 203
Taray›c›da bulunan ileri tuflu ile ayn› ifllemi yerine getirir. Afla¤›daki ör-
ne¤imizde ileri ve geri butonlar› yard›m›yla geçmifl kayd›nda bulunan
URL dizisi aras›nda gezinti yapabiliriz.
Örnek
go()
Bu metod ile geçmifl kayd›nda bulunan istedi¤iniz URL’yi pencereye
yükleyebilirsiniz.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 204
204 JAVASCRIPT
Örnek
Kodlar›m›z
locat›on Nesnesi
Taray›c›da görüntülenen sayfa ile ilgili adres (URL) ve konum bilgi-
lerine ulaflmak için kullan›l›r.
Nesne Özellikleri
hash
E¤er sayfa içi bir çapa oluflturmufl iseniz diyez (#) iflaretini kullanmal›-
s›n›z. URL içerisinde # (diyez) ile bafllayan bir çapa adresi mevcut ise
çapa ile bafllayan adresi okuyabilir ya da de¤ifltirebilirsiniz.
Örnek
‹çerisinde çapa olan bir sayfa olufltural›m. Amac›m›z çapa adresini div
içerisine yazd›rmak olsun. Bunun için bir div oluflturduk. Burada dikkat
etmeniz gereken URL adresi içerisinde # ile bafllayan bir metin parças›-
n›n bulunmas› olacakt›r.
Sayfa ilk yüklendi¤inde adres sat›r›nda diyez ile bafllayan bir metin
parças› bulunmamaktad›r. Bunun için Çapaya Git linkine t›klayal›m.
Adres sat›r›na dikkat ederseniz URL içerisinde diyez ile bafllayan bir
metin parças› bulunmaktad›r.
Daha sonra Çapa ad›n› yaz linkine t›klad›¤›n›zda div içerisine adres
çubu¤unda gözüken çapa ad› yazd›r›l›r.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 206
206 JAVASCRIPT
Kodlar›m›z
<p></p>
<a href=”javascript:;” onclick=”goster();”>Çapa adını yaz</a> ||
<a href=”#ust”>Çapaya Git</a>
</body>
</html>
href
Bu metod yüklü olan URL adresini geriye döndürür.
Örnek
208 JAVASCRIPT
<div id=”yaz”></div>
<a href=”javascript:;” onclick=”goster();”>URL’yi Göster</a>
</body>
</html>
URL’yi Göster linkine t›kland›¤›nda div içerisine yüklü olan url adresi-
nin tamam› yaz›lacakt›r.
search
URL içerisinde ? (soru iflareti) ile bafllayan metin parças›n› okuyabilir
ya da de¤ifltirebilirsiniz.
window.location.search
fleklinde kullan›l›r.
protocol
Taray›c›da yüklü olan URL adresinin protokolünü ö¤renmek için kulla-
n›l›r. (file:, http:)
Örnek
Kodlar›m›z
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<style type=”text/css”>
div
{
visibility:visible;
border-style:solid;
border-width:thin;
border-color:gray;
width:500px;
}
</style>
<script type=”text/javascript”>
function goster()
{
if(window.location.protocol==”http:”)
{
document.getElementById(“yaz”).innerHTML=”Görüntülenen belge â
internet üzerinde saklanıyor”+”(“+ window.location.protocol+”)”;
}else{
document.getElementById(“yaz”).innerHTML=”Görüntülenen belge â
sabit disk üzerinde saklanıyor”+”(“+ window.location.protocol+”)”;
}
}
</script>
</head>
<body>
<div id=”yaz”></div>
<a href=”javascript:;” onclick=”goster();”>Belge Konumunu â
Göster</a>
</body>
</html>
pathname
Taray›c›da yüklü olan sayfa ile ilgili yol ve dosya bilgilerini verir.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 210
210 JAVASCRIPT
Nesne Metodlar›
ass›gn( )
Taray›c› penceresine yeni bir sayfa yüklemek için kullan›l›r.
window.location.assign(“URL”)
Örnek
reload( )
Taray›c› penceresinde bulunan sayfay› yeniler, yani yeniden yükler.
Örnek
replace( )
Taray›c› penceresinde yüklü olan güncel sayfay› (belgeyi) bir baflka
sayfa ile de¤ifltirmek için kullan›l›r.
window. location. replace(“yeniURL”)
document Nesnesi
Belgeyi yani doküman› temsil etmektedir. Sayfadaki elemanlara ulafl-
mak için kullan›l›r. document nesnesi window alt nesnesi oldu¤undan
window.document ya da tek bafl›na document fleklinde kullanman›z
mümkün olacakt›r.
Nesne Özellikleri
anchors[]
Belge içerisinde kullan›lm›fl çapa bilgilerini bir dizi olarak saklar. Say-
fada kaç tane çapa kullan›ld›¤›n› bulan örne¤imize bakal›m.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 212
212 JAVASCRIPT
Kodlar›m›z
l›nks[]
Belge içerisinde kullan›lm›fl link bilgilerini (say›s›n›) bir dizi olarak sak-
lar. Afla¤›daki örnekte sayfa içerisinde kullan›lm›fl link say›s›n› bulaca¤›z.
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function islem()
{
alert(“Link sayısı\n”+document.links.length);
}
</script>
</head>
<body>
<a name=”top1” id=”top1”></a>
<a name=”top2” id=”top2”></a>
<a href=”javascript:;” onclick=”islem();”>Link sayısı</a>
</body>
</html>
body
body eleman›na eriflmek için kullan›l›r. Örnek olarak renk de¤ifltir lin-
kine t›kland›¤›nda sayfa arka plan rengini de¤ifltirelim.
Örnek 1
214 JAVASCRIPT
<title>Untitled Document</title>
<script type=”text/javascript”>
function islem()
{
document.body.bgColor=”gray”;
// linke tıklandığında sayfa artalan rengi gri olacaktır.
}
</script>
</head>
<body>
<a href=”javascript:;” onclick=”islem();”>Renk Değiştir</a>
</body>
</html>
Örnek 2
Sayfam›zda Renk De¤ifltir isimli bir link olsun ve bu linke t›kland›¤›nda
her saniye bafl›nda arka plan rengi otomatik olarak de¤iflsin.
</head>
<body>
<a href=”javascript:;” onclick=”islem();”>Renk Değiştir</a>
</body>
</html>
t›tle
Belge bafll›¤›na ulaflabilir ya da de¤ifltirebilirsiniz. Örnek olarak De¤ifl-
tir linkine t›kland›¤›nda belirledi¤imiz mesajlar›n sayfa bafll›¤›nda de-
¤iflerek gösterilmesi için bir uygulama yapal›m.
216 JAVASCRIPT
Nesne Metodlar›
getElementById()
S›kça kulland›¤›m›z bu metod sayfa içerisinde id özelli¤i kullan›lm›fl ele-
manlara ulaflmam›z› sa¤lar. Belirtilen id özelli¤ine sahip eleman›n refe-
rans› al›n›r. E¤er sayfa içerisinde birden fazla eleman ayn› id de¤erine sa-
hip ise bu metod tan›mlanm›fl ilk eleman›n referans›n› al›r. Bu metod ile
sayfada bulunan elemanlara ulaflabilir ve özelliklerini de¤ifltirebilirsiniz.
document.getElementById(“id”).(özellik/metodlar)
Örnek
getElementByName()
Sayfa içerisinde belirtilen ismi kullanm›fl elemanlar›n listesini dizi olarak
saklar. Ayn› ismi kullanm›fl elemanlara ulaflman›z mümkün olacakt›r.
document.getElementByName(“name”).(özellik/metodlar)
Örnek
218 JAVASCRIPT
Örnek
Sonuç
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 219
getElementByTagName()
Sayfa içerisinde belirtilen etiket ismine sahip elemanlar›n listesini verir.
Ayn› etiket ad›na sahip elemanlara toplu bir flekilde ulaflman›z mümkün
olacakt›r.
document. getElementByTagName(“name”).(özellik/metodlar)
Örnek 1
Örnek 2
Sayfadaki p elemanlar›n›n arka plan renklerini 1sn aral›klarla sar› yapa-
ca¤›z.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 220
220 JAVASCRIPT
wr›te(), wr›teln()
write() ve writeln() metodlar› sayfaya karakter grubu ya da html ele-
manlar› içeren metin (html kaynakl› içerik) yazd›rmak için kullan›l›r.
writeln( ) metodu yeni sat›r karakteri içermektedir. Yani writeln()
metodu sayfaya içeri¤i yazd›ktan sonra imleci bir alt sat›ra konumland›r›r.
Örnek
<script type=”text/javascript”>
document.write(“yazı”);
document.write(“metin”,” “,”<strong>içerik</strong>”);
</script>
Sonuç
yazımetin içerik
Event Nesnesi
Event nesnesi tetiklenen olay ile ilgili bilgi almam›z› sa¤layan bir DOM
(Document Object Model) nesnesidir. Kullan›c›n›n bast›¤› klavye tuflu,
mouse tuflu ya da mouse iflaretçisinin konumu ile ilgili bilgileri event
nesnesi sayesinde ö¤renebilirsiniz.
Nesne Özellikleri
altKey Özelli¤i
Bir olay gerçekleflti¤inde ALT tufluna bas›l›p bas›lmad›¤›n› geriye dön-
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 222
222 JAVASCRIPT
Örnek
ctrlKey Özelli¤i
Bir olay gerçekleflti¤inde CTRL tufluna bas›l›p bas›lmad›¤›n› geriye dön-
dürür.
Örnek
224 JAVASCRIPT
}
</style>
<script type=”text/javascript”>
function islem()
{
if(event.ctrlKey==true)
{
alert(“CTRL tuşu basılı”);
}else{
alert(“CTRL tuşu basılı değil”);
}
}
</script>
</head>
<body>
<div onmousedown=”islem();”>Mouse ile Tıklayınız</div>
</body>
</html>
sh›ftKey Özelli¤i
Bir olay gerçekleflti¤inde SHIFT tufluna bas›l›p bas›lmad›¤›n› geriye
döndürür.
Örnek
div
{
background-color:#CCC;
width:150px;
height:100px;
}
</style>
<script type=”text/javascript”>
function islem()
{
if(event.shiftKey==true)
{
alert(“SHIFT tuşu basılı”);
}else{
alert(“SHIFT tuşu basılı değil”);
}
}
</script>
</head>
<body>
<div onmousedown=”islem();”>Mouse ile Tıklayınız</div>
</body>
</html>
keyCode Özelli¤i
Bir olay gerçekleflti¤inde klavyeden bas›lan tuflun unicode de¤erini ge-
riye döndürür. onKeypress olay›nda event.keyCode özelli¤i büyük
harflerin ve küçük harflerin unicode de¤erlerini döndürecektir.
Örnek
onKeypress olay›nda event.keyCode özelli¤ini kullanal›m.
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 226
226 JAVASCRIPT
Sonuç
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 227
Örnek
onKeyDown olay› ile event.keyCode özelli¤ini kullanal›m.
228 JAVASCRIPT
Button Özelli¤i
Bir olay gerçekleflti¤inde hangi mouse tufluna bas›ld›¤›n› geriye döndür.
Örnek
Örne¤imizi Internet Explorer için yapal›m.
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<style type=”text/css”>
#click
{
background-color:#FFC;
border-style:solid;
border-color:#903;
width:50px;
height:50px;
border-width:thin;
}
#yaz
{
background-color:#F2F2F2;
border-style:solid;
border-color:#333;
width:170px;
height:30px;
}
</style>
<script type=”text/javascript”>
function mouse_event()
{
var num=event.keyCode;
var harf=String.fromCharCode(num);
document.getElementById(“yaz”).innerHTML=””;
if(event.button==1)
{
document.getElementById(“yaz”).innerHTML=”Sol tuş basıldı”;
}else if(event.button==2){
document.getElementById(“yaz”).innerHTML=”Sağ tuş basıldı”;
}else{
document.getElementById(“yaz”).innerHTML=”Orta(Tekerlek)
tuş basıldı”;
}
}
+JAVASCRIPT-BOLUM11 7/30/09 9:28 PM Page 230
230 JAVASCRIPT
</script>
</head>
<body>
Mouse tuşu İle tıklayınız !<br />
<div id=”click” onmousedown=”mouse_event();”></div><br />
Sonuç:<br />
<div id=”yaz”></div>
</body>
</html>
Sayfam›za bakarsak:
232 JAVASCRIPT
+JAVASCRIPT-BOLUM12 7/30/09 9:29 PM Page 233
ZAMANLAYICILAR
12
Javascript’te Zamanlay›c›lar 233
setTimeout() 233
clearTimeout() 236
setinterval() 238
clearinterval() 240
Javascr›pt’te Zamanlay›c›lar
setT›meout()
Kod ya da kod bloklar›n› belirtilen zaman sonunda yaln›z bir kere çal›fl-
t›rmak için kullan›l›r.
window. setTimeout(“kodlar”,zaman)
ya da
var zaman= window.setTimeout(“kodlar”,zaman)
234 JAVASCRIPT
Örnek
<script type=”text/javascript”>
window.setTimeout(“zaman()”,1000);
function zaman()
{
alert(“Zamanlayıcılar”);
}
// dikkat ederseniz 1sn sonra zaman() isimli fonksiyon 1
defa çalıştırıldı.
</script>
Örnek
Bir div içerisine 0 ile 50 aras›ndaki rakamlar› yazan kod grubunu set-
Timeout() metodunu kullanarak yazal›m.
Kodlar›m›z
ZAMANLAYICILAR 235
#yaz
{
background-color:#F2F2F2;
border-style:solid;
border-color:#333;
width:50px;
height:50px;
text-align:center;
color:blue;
visibility:visible;
font-size:30px;
vertical-align:middle;
}
</style>
<script type=”text/javascript”>
var i_zaman=0;
function zaman()
{
document.getElementById(“yaz”).innerHTML=i_zaman;
if(i_zaman==50)
{
return;
}
i_zaman++;
window.setTimeout(“zaman()”,1000);
}
</script>
</head>
<body>
<div id=”yaz”></div><br />
<input type=”button” value=”|Say|” onclick=”zaman();” />
</body>
</html>
+JAVASCRIPT-BOLUM12 7/30/09 9:29 PM Page 236
236 JAVASCRIPT
Sayfam›z›n görüntüsü:
clearT›meout()
setTimeout() metoduyla oluflturulmufl zamanlama ifllemini iptal eder.
clearTimeout() metodunu kullanmak için setTimeout() metodunun
bir de¤iflkene atanm›fl olmas› gerekir.
Örnek
Kodlar›m›z
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
+JAVASCRIPT-BOLUM12 7/30/09 9:29 PM Page 237
ZAMANLAYICILAR 237
238 JAVASCRIPT
Sayfam›z›n görüntüsü:
set›nterval()
Kod ya da kod bloklar›n› belirtilen zaman aral›¤›nda tekrar çal›flt›rmak
için kullan›l›r. setTimeout( ) geçici bir zamanlay›c› olufltururken se-
tInterval( ) ile kal›c› bir zamanlay›c› oluflturulur.
window.setInterval(“kodlar”,zaman)
ya da
var zaman= window.setInterval(“kodlar”,zaman)
ZAMANLAYICILAR 239
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<style type=”text/css”>
#yaz
{
background-color:#F2F2F2;
border-style:solid;
border-color:#333;
width:50px;
height:50px;
text-align:center;
color:blue;
visibility:visible;
font-size:30px;
vertical-align:middle;
}
</style>
<script type=”text/javascript”>
var i=0;
var zaman=window.setInterval(“say()”,1000);
// zaman kimlik numarasına sahip olan zamanlayıcı
// 1sn aralıklarla say() fonksiyonunu çalıştıracak
function say()
{
document.getElementById(“yaz”).innerHTML=i;
i++;
}
</script>
</head>
<body>
<div id=”yaz”></div><br />
</body>
</html>
+JAVASCRIPT-BOLUM12 7/30/09 9:29 PM Page 240
240 JAVASCRIPT
Sayfam›z›n görüntüsü:
clear›nterval()
setInterval() metoduyla oluflturulmufl kal›c› zamanlay›c›y› (zaman-
lama ifllemini) iptal eder.
Örnek
Sayfam›zda birer tane div ve butonumuz olsun. Sayfa yüklendi¤inde
div içerisine say›lar ard›fl›k olarak yaz›lacakt›r. Dur butonuna t›kland›-
¤›nda sayma ifllemi durdurulacakt›r.
Örnek
ZAMANLAYICILAR 241
color:blue;
visibility:visible;
font-size:30px;
vertical-align:middle;
}
</style>
<script type=”text/javascript”>
var i=0;
var zaman=window.setInterval(“say()”,1000);
// zaman kimlik numarasına sahip olan zamanlayıcı
// 1sn aralıklarla say() fonksiyonunu çalıştıracak
function say()
{
document.getElementById(“yaz”).innerHTML=i;
i++;
}
function dur()
{
window.clearInterval(zaman);
}
</script>
</head>
<body>
<div id=”yaz”></div><br />
<input type=”button” value=”Dur” onclick=”dur()” />
</body>
</html>
Örnek
242 JAVASCRIPT
<style type=”text/css”>
#kayan
{
position:absolute;
top:20px;
width:50px;
height:50px;
background-color:#B3B5FD;
}
</style>
<script type=”text/javascript”>
var zaman=window.setInterval(“ileri()”,10);
var x=0;
function ileri()
{
document.getElementById(“kayan”).style.left=x;
if(x==400)
{
dur();
}
x++;
}
function dur()
{
window.clearInterval(zaman);
var zaman2=window.setInterval(“geri()”,10);
}
function geri()
{
x—;
document.getElementById(“kayan”).style.left=x;
if(x==0)
{
window.clearInterval(zaman2);
}
}
</script>
</head>
<body>
<div id=”kayan” >Kayan Layer</div>
</body>
</html>
+JAVASCRIPT-BOLUM12 7/30/09 9:29 PM Page 243
ZAMANLAYICILAR 243
Sayfa görüntüsü:
+JAVASCRIPT-BOLUM12 7/30/09 9:29 PM Page 244
244 JAVASCRIPT
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 245
FORMLAR
13
<form> Nesnesi 246 file Nesnesi 273
<INPUT> Nesnesi 252 image Nesnesi 273
Form Elemanlar› (Nesneleri) 257 submit Nesnesi 273
text Nesnesi Metodlar› 262 reset Nesnesi 274
password (fiifre Metin button Nesnesi 274
Kutusu) Nesnesi 263 textarea Nesnesi 276
checkbox (Onay Kutusu) textarea Nesnesi Metodlar› 281
Nesnesi 264
select Nesnesi 281
checkbox Nesnesi Metodlar› 266
Option Nesnesi 282
radio (Seçenek Dü¤mesi)
Select Nesnesi Metodlar› 287
Nesnesi 268
hidden (Gizlenmifl
Form Eleman›) Nesnesi 272
Form alanlar› sadece kullan›c›dan bilgi al›p bir baflka sayfaya gönder-
mek için kullan›lmaz. Bunun d›fl›nda form alanlar› oluflturarak formu
baflka sayfaya göndermeden sayfan›n kendi içinde Javascript yard›m›y-
la çeflitli ifllemler yapman›z mümkün olacakt›r.
246 JAVASCRIPT
<form> Nesnesi
Form alanlar› oluflturmak için bu etiketi kullanman›z gerekir.
Özellikleri
• action: Formun ifllenmesi için gönderilece¤i sayfa ad›.
• method: Gönderme metodu. (get/post)
• name: Formun ad›.
• enctype: fiifreleme türü.
• target: action ile belirtilen sayfan›n aç›laca¤› hedef pencere.
• id: Form için benzersiz bir kimlik.
• length: Form içerisindeki var olan eleman say›s›.
method
Form elemanlar›n›n içerdi¤i bilgilerin action özelli¤i ile belirtilen say-
faya nas›l gönderilece¤ini ayarlamak için kullan›l›r. Method özelli¤i get
ya da post de¤erini alabilir.
Örnek
FORMLAR 247
<body>
<form action=”islem.aspx” method=”get” target=”_blank”>
<input type=”text” name=”adi” />
<input type=”submit” value=”Gönder” />
</form>
</body>
</html>
elements[]
Form içerisinde kullan›lm›fl elemanlar› bir dizi içerisinde saklar. ‹stedi-
¤iniz form eleman›na ulaflman›z mümkün olacakt›r.
Örnek
248 JAVASCRIPT
var str=””;
var elemansayisi=document.getElementById(“frm”).length;
var frmnesne=document.getElementById(“frm”);
for(var i=0;i<elemansayisi;i++)
{
if(frmnesne.elements[i].checked==true)
{
var txt=frmnesne.elements[i].value+”-”
str=str+txt;
}
}
// Kullanıcının tıkladığı checkbox’ları
// bir mesaj kutusu ile gösterelim
alert(“Kullandığınız Programlar\n”+str);
}
</script>
</head>
<body>
<form id=”frm”>
Web sayfası tasarlarken kullandığınız Programlar ?<br />
<input type=”checkbox” name=”sec” value=”flash” />:Flash |
<input type=”checkbox” name=”sec” value=”dreamweaver”
/>:dreamweaver |
<input type=”checkbox” name=”sec” value=”flex” />:flex |
<input type=”checkbox” name=”sec” value=”Web Developer”
/>:Web Developer<br />
<input type=”button” onclick=”islem()” value=”Kullandığınız
Programlar” />
</form>
</body>
</html>
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 249
FORMLAR 249
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function islem()
{
var deger1=document.getElementById(“ad”).value;
var deger2=document.getElementById(“ders”).value;
var deger3=document.getElementById(“gorus”).value;
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 250
250 JAVASCRIPT
FORMLAR 251
reset()
Kullan›c› taraf›ndan forma girilen verileri siler yani formu temizler. As-
l›nda reset butonu bu ifllemi yapmaktayd›, fakat programatik olarak is-
tedi¤iniz flartlar gerçekleflti¤i zaman reset butonunun yapt›¤› ifllemi
yapt›rmak istiyorsan›z bu durumda reset() metodunu kullanmal›s›n›z.
Örnek
252 JAVASCRIPT
Görüşünüz:<br />
<textarea cols=”10” rows=”4” name=”gorus” id=”gorus”></tex-
tarea><br />
<input type=”button” onclick=”islem()” value=”Temizle” />
</form>
</body>
</html>
<INPUT> Nesnesi
Form içerisine kontroller yerlefltirmek için kullan›lan nesnedir. Bu nes-
ne sayesinde kullan›c› ile etkileflime giren form elemanlar› form içerisi-
ne yerlefltirilir. Input nesnesinin özellikleri afla¤›da verilmifltir.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 253
FORMLAR 253
Örnek
Sayfam›za bakal›m:
›d
Javascript HTML DOM ile elemanlara eriflmek için kullan›lan bu özel-
lik Form elemanlar›na benzersiz bir isim atamak için kullan›l›r.
name
Kullan›c› taraf›ndan kontrole girilen verinin ya da kontrolde yap›lan se-
çimin saklanaca¤› de¤iflken ad› mutlaka tan›mlanmal›d›r.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 254
254 JAVASCRIPT
d›sabled
Form elemanlar›n› pasif yapar yani kullan›m d›fl› b›rak›r. Bu özelli¤e
true de¤eri atarsan›z form eleman› pasif yani kullan›m d›fl›, false de¤e-
rini atarsan›z form eleman› aktif olur.
Örnek
FORMLAR 255
var sonuc=document.getElementById(“ad”).value;
if(sonuc==””)
{
document.getElementById(“meslek”).disabled=true;
}else{
document.getElementById(“meslek”).disabled=false;
}
}
</script>
</head>
<body onload=”basla()”>
<form id=”frm” method=”post” action=”islem.aspx”>
Adı Soyadı:<br />
<input type=”text” id=”ad” onblur=”islem()”/><br />
Mesleği:<br />
<input type=”text” id=”meslek” />
</form>
</body>
</html>
Sayfam›za bakt›¤›m›zda:
256 JAVASCRIPT
Örnek
Metin kutusu için klavye k›sayolu dinamik bir flekilde oluflturulmaktad›r.
Sayfam›za bakarsak:
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 257
FORMLAR 257
tab›ndexS
Form yüklendi¤inde TAB tuflu ile form elemanlar› aras›nda gezinti yapa-
biliriz.Bu özellikle, sekme s›ras›n› ayarlaman›z mümkündür.
value Özelli¤i
Text eleman›na varsay›lan içerik (bafllang›ç de¤eri) atamak ya da var
olan de¤eri okumak için kullan›l›r.
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function esit()
{
document.getElementById(“iki”).value=document.getElementB-
yId(“bir”).value;
}
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 258
258 JAVASCRIPT
</script>
</head>
<body >
<form id=”frm” method=”post” action=”islem.aspx”>
<input type=”text” id=”bir” /> <strong> =</strong> <input
type=”text” id=”iki” style=”background-color:#FC9;” â
onfocus=”esit()”/><br />
</form>
</body>
</html>
s›ze Özelli¤i
Text form elemanlar›nda geniflli¤i karakter say›s› cinsinden ayarlamak
için kullan›l›r.
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function ayarla()
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 259
FORMLAR 259
{
document.getElementById(“ad”).size=document.getElementB-
yId(“ayar”).value;
}
</script>
</head>
<body>
<form id=”frm” method=”post” action=”islem.aspx”>
<input type=”text” id=”ad” size=”20”/><br />
size: <input type=”text” size=”3” id=”ayar”/>||<a href=”javascript:;” â
onclick=”ayarla();”>Ayarla</a>
</form>
</body>
</html>
Sonuç
maxLength Özelli¤i
Text elemanlar›nda girilebilecek maksimum karakter say›s›n› ayarla-
mak için kullan›l›r.
Örnek
260 JAVASCRIPT
</script>
</head>
<body>
<form id=”frm” method=”post” action=”islem.aspx”>
Metin:<input type=”text” id=”ad”/><br />
maxLength: <input type=”text” size=”2” id=”ayar”/>||<a
href=”javascript:;” onclick=”max_length();”>maxLength_Ayarla</a>
</form>
</body>
</html>
Sonuç
readOnly Özelli¤i
Kullan›c›n›n bilgi girdi¤i form elemanlar›n› sadece okunabilir yapmak
için kullan›l›r. Kullan›c› form eleman› içindeki bilgiyi de¤ifltiremez. Bu
özelli¤e true de¤eri verirseniz eleman sadece okunabilir olur, false de-
¤eri verirseniz bu k›s›tlamay› kald›rabilirsiniz.
Örnek
FORMLAR 261
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function read_only()
{
if(document.getElementById(“sec”).checked==true)
{
document.getElementById(“txt”).readOnly=true;
}else{
document.getElementById(“txt”).readOnly=false;
}
}
</script>
</head>
<body>
<form id=”frm”>
Metin:<input type=”text” id=”txt”/><br />
Metin kutusunu sadece okunabilir yap > <input type=”checkbox” â
id=”sec”/><br />
<a href=”javascript:;” onclick=”read_only();”>Aktif / Pasif</a>
</form>
</body>
</html>
Sonuç
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 262
262 JAVASCRIPT
Örnek
Bir metin kutusunun select(), blur(), focus() metodlar›n› incele-
yelim.
FORMLAR 263
Sonuç
Örnek
<form id=”frm”>
Kullanıcı Adınız..:<input type=”text” id=”txt” /><br />
Kullanıcı Şifreniz:<input type=”password” id=”pas”/><br />
<input type=”submit” value=”Gönder”/>
</form>
Sonuç
NOT Text nesnesi için anlat›lan özellik ve metodlar password nesnesi için de geçerlidir.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 264
264 JAVASCRIPT
checked Özelli¤i
checkbox eleman›n›n seçili olma durumunu ö¤renebilir ya da ayarlaya-
bilirsiniz. Bir checkbox eleman›n›n checked özelli¤i true ise eleman se-
çili, false ise eleman seçili de¤ildir.
Örnek
<form id=”frm”>
Bildiğiniz Programlama Dilleri?<br />
<input type=”checkbox” id=”onay1” />vb<br />
<input type=”checkbox” id=”onay2” />c#<br />
<input type=”checkbox” id=”onay3” checked=”checked” />java<br />
</form>
Sonuç
Örnek
FORMLAR 265
<script type=”text/javascript”>
function check()
{
var str=””;
if(document.getElementById(“onay1”).checked==true)
{
str=”vb “;
}
if(document.getElementById(“onay2”).checked==true)
{
str=str+”c#”;
}
alert(“İşaretledikleriniz\n”+str);
}
</script>
</head>
<body>
<form id=”frm”>
Bildiğiniz Programlama Dilleri ? <br />
<input type=”checkbox” id=”onay1” />vb<br />
<input type=”checkbox” id=”onay2” />c#<br />
<input type=”button” value=”İşaretledikleriniz” â
onclick=”check()” />
</form>
</body>
</html>
266 JAVASCRIPT
value Özelli¤i
checkbox eleman› için value de¤erini okur ya da ayarlar.
Örnek
FORMLAR 267
Örnek
Bir onay kutusunun blur(), focus(), click() metodlar› incelenmifltir.
Sonuç
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 268
268 JAVASCRIPT
Örnek
<form id=”frm”>
Bir Renk seçiniz ?<br />
<input type=”radio” id=”onay” value=”k”/>Kırmızı<br />
<input type=”radio” id=”onay” value=”b”/>Beyaz<br />
<input type=”radio” id=”onay” value=”m”/>Mavi<br />
<input type=”radio” id=”onay” value=”y”/>Yeşil<br />
<input type=”radio” id=”onay” value=”mo”/>Mor
</form>
checked Özelli¤i
radio eleman›n›n seçili olma durumunu ö¤renebilir ya da ayarlayabilir-
siniz. Bir radio eleman›n›n checked özelli¤i true ise eleman seçili, fal-
se ise eleman seçili de¤ildir. Ayr›ca bu özelli¤i etiket içerisinde kulla-
n›p eleman›n default olarak seçili olmas›n› sa¤layabilirsiniz.
Örnek
FORMLAR 269
{
alert(“Kırmızı Seçili”);
}else if(document.getElementById(“r2”).checked==true)
{
alert(“Beyaz Seçili”);
}else
{
alert(“Yeşil Seçili”);
}
}
</script>
</head>
<body>
<form id=”frm”>
Bir renk seçiniz ? <br />
<input type=”radio” id=”r1” name=”renk”/>Kırmızı<br />
<input type=”radio” id=”r2” name=”renk”/>Beyaz<br />
<input type=”radio” id=”r3” name=”renk”/>Yeşil<br />
<input type=”button” value=”Seçileni Göster” â
onclick=”islem()” />
</form>
</body>
</html>
Dikkat ederseniz kullan›c› radio button grubu içerisinden sadece bir ta-
ne seçim yapabilmektedir. Radio button elemanlar›n›n id özelli¤i kul-
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 270
270 JAVASCRIPT
Örnek
FORMLAR 271
</form>
</body>
</html>
Sonuç
Birden çok seçenek içerisinden sadece bir tanesini seçebilmek için ra-
dio button grubu oluflturman›z gerekti¤ini daha önce söylemifltim. Bu-
rada yapaca¤›m›z ifllem bir radio button grubu içerisinde kullan›c›n›n
seçti¤i radio button’u bulmak. Bir önceki örne¤imizde bir radio button
grubu içerisinden seçilen eleman› bulmak için tüm radio button’lara tek
tek ulafl›p checked özelliklerine bakm›flt›k. Bu durum radio button say›-
s› artt›kça yorucu olabilir.
Bir radio button grubu oluflturmak için zaten grup içerisindeki radio ele-
manlar›na ayn› ismi vermemiz gerekiyordu.
Yukar›daki kod sat›r› ile name özelli¤ine “renk” de¤eri atanm›fl sayfa
elemanlar›n›n say›s›n› bulabilirim. Asl›nda bu say› radio button grubu
içerisindeki eleman (seçenek) say›s› olacakt›r. Örne¤imiz için bu de¤er
3’tür.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 272
272 JAVASCRIPT
value Özelli¤i
radio eleman› için value de¤erini okur ya da ayarlar.
Örnek
FORMLAR 273
f›le Nesnesi
Dosya yükleme alanlar› oluflturmak için kullan›l›r. Dosyalar›n›z› sunu-
cudaki herhangi bir konuma göndermek için kullanmal›s›n›z.
Örnek
›mage Nesnesi
image nesnesi oluflturdu¤unuzda bu nesneyi submit butonu yerine kul-
lanabilirsiniz.
Forma yerlefltirdi¤iniz resim submit butonu ile ayn› ifllevi yerine getirir.
Submit butonu yerine kendi yapt›¤›n›z bir resmi koyabilirsiniz.
subm›t Nesnesi
Forma girilen verileri action özelli¤i ile belirtilen sayfaya gönderir. Su-
nucu tarafl› çal›flan sayfa kullan›c›dan ald›¤› bilgilerle ilgili çeflitli ifl-
lemleri yerine getirir.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 274
274 JAVASCRIPT
reset Nesnesi
Kullan›c› taraf›ndan forma girilen verileri siler yani formu temizler.
Örnek
FORMLAR 275
<title>Untitled Document</title>
<script type=”text/javascript”>
function ekle()
{
document.getElementById(“style”).disabled=false;
}
function kaldır()
{
document.getElementById(“style”).disabled=true;
}
function baslik()
{
document.title=document.getElementById(“title”).value;
}
</script>
<link href=”form.css” id=”style” rel=”stylesheet”
type=”text/css” />
</head>
<body>
<form id=”frm”>
Sayfa Başlığı:
<input type=”text” id=”title”/><br />
<input type=”button” value=”CSS ekle” onclick=”ekle()” />||
<input type=”button” value=”CSS kaldır” onclick=”kaldır()” />||
<input type=”button” value=”Title ekle” onclick=”baslik()”/>
</form>
</body>
</html>
276 JAVASCRIPT
textarea Nesnesi
Birden fazla sat›ra sahip olan, metin alan› oluflturmak için kullan›l›r. Bu
form eleman› input tag› ile oluflturulmaz.
Özellikleri
• name: Metin alan› için bir ad verebilirsiniz.
• id: Javascript HTML DOM ile elemanlara eriflmek için kullan›lan bu
özellik, textarea nesnesine benzersiz bir isim atamak için kullan›l›r.
• cols: Metin alan›n›n karakter cinsinden geniflli¤i, metin alan›nda yatay-
da gösterilecek karakter say›s›.
• rows: Gösterilecek sat›r say›s› (textarea yüksekli¤i)
• readOnly: Metin alan›n› sadece okunabilir yapar. Kullan›c› metin alan›
içerisindeki veriyi de¤ifltiremez. Metin alan›n› sadece okunabilir yap-
mak için bu özelli¤e true, metin alan›n› hem okunabilir hem de yaz›la-
bilir yapmak için false de¤eri atanmal›d›r.
• disabled: Metin alan›n› pasif yapar, kullan›m d›fl› b›rak›r. Metin alan›-
n› pasif yapmak için bu özelli¤e true, aktif yapmak için false de¤eri
atanmal›d›r.
• tabindex: Tab s›ras›n›n ayarlanmas›n› sa¤lar.
• value: Textarea içerisine metin atamak ya da var olan metni okumak
için kullan›l›r.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 277
FORMLAR 277
Örnek
Textarea içerisine default olarak bir metin atanabilir.
<form id=”frm”>
<textarea rows=”4” cols=”20”>
Textarea içeriği
</textarea>
</form>
Örnek
textarea nesnesinin value özelli¤i kullan›larak içerisine metin atanm›flt›r.
278 JAVASCRIPT
</script>
</head>
<body>
<form id=”frm”>
<textarea id=”txtarea”rows=”4” cols=”20”>
</textarea><br />
<input type=”button” value=”İçerik yaz” onclick=”yaz()” />
</form>
</body>
</html>
Sonuç
‹çerik yaz dü¤mesine bas›ld›¤›nda girdi kutusu ile kullan›c›dan bir me-
tin istenecek. Kullan›c›dan al›nan bu metin textarea’n›n value özelli¤i-
ne atanacak. (textarea içerisine yaz›lacak)
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 279
FORMLAR 279
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function basla()
{
document.getElementById(“txtarea”).disabled=true;
}
function islem()
{
if(document.getElementById(“sec”).checked==true)
{
document.getElementById(“txtarea”).disabled=false;
}else{
document.getElementById(“txtarea”).disabled=true;
}
}
</script>
</head>
<body onload=”basla()”>
<form id=”frm”>
<textarea id=”txtarea”rows=”4” cols=”20” >
</textarea><br />
textarea(aktif/pasif):<input type=”checkbox” â
onblur=”islem()”id=”sec” /><br />
</form>
</body>
</html>
Örnek
280 JAVASCRIPT
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function ayarla()
{
document.getElementById(“yaz”).cols=document.getElementB-
yId(“text_cols”).value;
document.getElementById(“yaz”).rows=document.getElementB-
yId(“text_rows”).value;
}
</script>
</head>
<body>
<form id=”frm”>
<textarea id=”yaz” >
</textarea><br />
<input type=”text” id=”text_cols” size=”3” />cols(Genişliği)|| â
<input type=”text” id=”text_rows” size=”3”/>rows(Genişliği)<br />
<input type=”button” onclick=”ayarla()” value=”ayarla”/>
</form>
</body>
</html>
Sonuç
FORMLAR 281
select Nesnesi
Aç›lan kutu ya da liste kutusu oluflturmak için kullan›l›r. Aç›lan kutuda
kullan›c› birçok seçenek içerisinden bir tane seçim yapabilirken liste ku-
tusunda (multiple özelli¤i kullan›lm›fl ise) kullan›c› birçok seçenek içe-
risinden birden fazla seçim yapabilir.
Özellikleri
• name: Select nesnesi için bir ad verebilirsiniz.
• id: Select nesnesine benzersiz bir isim atamak için kullan›l›r.
• multiple: Kullan›c›n›n çoklu seçim yapabilmesini sa¤lar. Bu özelli¤e
true ya da false de¤erlerinden biri atan›r.
E¤er true de¤eri verirseniz multiple özelli¤ini aktif yapm›fl olursunuz.
• size: Kullan›c›ya gösterilecek seçenek say›s›. (select eleman›n›n yük-
sekli¤i)
• disabled: Select nesnesini pasif yapar, kullan›m d›fl› b›rak›r. Bu özel-
li¤e true ya da false de¤erlerinden biri atan›r. E¤er true de¤eri verirse-
niz select nesnesini pasif yapm›fl olursunuz.
• tabindex: Tab s›ras›n›n ayarlanmas›n› sa¤lar.
• length: Select nesnesi içerisindeki seçenek say›s›n› verir.
• selectedIndex: Select nesnesi içerisinde seçili olan eleman›n index
numaras›n› verir.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 282
282 JAVASCRIPT
Opt›on Nesnesi
Özellikleri
• id: Option nesnesine benzersiz bir isim atamak için kullan›l›r.
• value: Seçenek için bir de¤er atamas› yapabilirsiniz.
• text: <option></option> option taglar› aras›ndaki metni ayarlayabi-
lir ya da okuyabilirsiniz.
Örnek
Form sayfaya yüklendi¤inde select nesnesi içerisindeki bir eleman› de-
fault olarak seçili yapabilirsiniz. Ayn› ifllem select nesnesi liste kutusu
olarak kullan›ld›¤› zaman da yap›labilir.
<form id=”frm”>
Eğitim durumunuz nedir?<br />
<select id=”secenek” name=”s1”>
<option>lise</option>
<option>Önlisans</option>
<option selected=”selected”>lisans</option>
<option>Yüksek lisans</option>
</select>
</form>
Sayfam›za bakal›m.
opt›ons[]
Select nesnesi içerisindeki seçenekleri bir dizi içerisinde saklar. Select
nesnesi içerisindeki seçeneklere (elemanlara) bu nesne ile ulaflmam›z
mümkündür.
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 283
FORMLAR 283
Örnek
284 JAVASCRIPT
Sonuç
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function islem()
{
var index=document.getElementById(“e_durum”).selectedIndex;
alert(document.getElementById(“e_durum”).options[index].text);
}
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 285
FORMLAR 285
</script>
</head>
<body>
<form id=”frm”>
Eğitim durumunuz nedir?<br />
<select id=”e_durum” name=”s1”>
<option>lise</option>
<option>Önlisans</option>
<option selected=”selected”>lisans</option>
<option>Yüksek lisans</option>
</select><br />
<input type=”button” value=”Seçimi göster” onclick=”islem()” />
</form>
</body>
</html>
Örnek
<form id=”frm”>
Bir renk seçiniz?<br />
<select id=”renkler” name=”s1” size=”2”>
<option>Kırmızı</option>
<option>Mavi</option>
<option selected=”selected”>Beyaz</option>
<option>Mor</option>
</select>
<input type=”button” value=”Seçimi göster” onclick=”islem()” />
</form>
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 286
286 JAVASCRIPT
<form id=”frm”>
Bir renk seçiniz?<br />
<select id=”renkler” name=”s1” multiple=”multiple”>
<option>Kırmızı</option>
<option>Mavi</option>
<option selected=”selected”>Beyaz</option>
<option>Mor</option>
</select>
</form>
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function islem()
{
var say=document.getElementById(“renkler”).length;
for(var i=0;i<say;i++)
{
+JAVASCRIPT-BOLUM13 7/30/09 9:30 PM Page 287
FORMLAR 287
if(document.getElementById(“renkler”).options[i].selected==true)
{
alert(document.getElementById(“renkler”).options[i].text);
}
}
}
</script>
</head>
<body>
<form id=”frm”>
Bir renk seçiniz?<br />
<select id=”renkler” name=”s1” multiple=”multiple”>
<option>Kırmızı</option>
<option>Mavi</option>
<option selected=”selected”>Beyaz</option>
<option>Mor</option>
</select><br />
<input type=”button” value=”Seçiminiz” onclick=”islem()” />
</form>
</body>
</html>
Sonuç
288 JAVASCRIPT
Örnek
add() metodunu kullanarak select nesnesine seçenek ekleyelim.
FORMLAR 289
Sonuç
Yukar›daki örne¤imizde:
Örnek
remove() metodunu kullanarak select nesnesinde kullan›c› taraf›ndan
seçilen seçene¤i silelim.
290 JAVASCRIPT
nesne.remove(num);
}
</script>
</head>
<body>
<form id=”frm”>
<select id=”renkler” name=”s1” multiple=”multiple”>
<option>Kırmızı</option>
<option>Mavi</option>
<option selected=”selected”>Beyaz</option>
<option>Mor</option>
</select><br />
<input type=”button” value=”|SİL|” onclick=”islem()” />
</form>
</body>
</html>
Sonuç
ÇERÇEVELER
14
frameset Nesnesi 291 border 296
frameset Nesnesinin bordercolor 296
Özellikleri 292 frame Nesnesi 297
id 292 noframes Etiketi 301
cols 292 iframe Nesnesi 302
rows 294
frameborder 296
Çerçeveler ile web sayfan›z› birden fazla alana ay›r›p her bir alanda ay-
r› bir web sayfas› görüntüleyebilirsiniz. Asl›nda çerçeveler bir taray›c›
gibi çal›flan alanlard›r. Bir sayfay› çerçevelere bölmek için ilk önce
<frameset> nesnesini kullanman›z gerekir. Asl›nda bu nesne ile çerçe-
ve kümesi oluflturulur. Frameset nesnesi içerisinde sayfada bulanan çer-
çeve say›s›, çerçeve boyutlar› ayarlan›r. Çerçeve kümesi tan›mlad›¤›n›z
sayfan›n kendisi hiçbir HTML belgesi içermez. Yani bu sayfan›n ken-
disinin bir içeri¤i yoktur ve <Body> etiketini içermez. Bu sayfa çerçeve
kümesini içerir ve tafl›y›c› bir sayfad›r.
frameset Nesnesi
Çerçeve kümesi oluflturmak için kullan›l›r. Frameset içeren sayfan›n
kendisinin <body> taglar› aras›nda bir içeri¤i yoktur.
Örnek
<html>
<head>
<title>Untitled Document</title>
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 292
292 JAVASCRIPT
</head>
<frameset cols=”” rows=”” >
</frameset>
<noframes><body>
</body></noframes>
</html>
NOT Afla¤›da anlat›lan özelliklerden id, cols, rows d›fl›nda kalanlar frameset
nesnesi için DOM taraf›ndan desteklenmemektedir. Ancak HTML karfl›l›kla-
r›n› etiket içerisinde kullanabilirsiniz.
cols
Sütun oluflturmak için kullan›l›r. Araya virgül koyarak istedi¤iniz kadar
sütun oluflturabilirsiniz. cols parametresine girdi¤iniz de¤erler sütunla-
r›n genifllik de¤erleri olacakt›r. Bu özelli¤e yazd›¤›n›z de¤er say›s›nca
sütun belirtilen uzunluk de¤erlerine göre oluflturulacakt›r.
ÇERÇEVELER 293
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html;
charset=utf-8” />
<title>Untitled Document</title>
</head>
<frameset cols=”40%,60%” >
<frame src=”menu.html” name=”menu” />
<frame src=”orta.html” name=”orta” />
</frameset>
<noframes><body>
</body></noframes>
</html>
Yukar›daki gibi yapm›fl olsayd›k yine menu isimli çerçeve (frame) say-
fan›n toplam geniflli¤inin %40’› kadar olacakt›. ‹kinci frame’in geniflli-
¤i olarak * karakteri yaz›lm›flt›r. Bu karakter geriye kalan uzunlu¤u (ge-
niflli¤i) ikinci frame’in geniflli¤i olarak belirle anlam›na gelir. ‹kinci fra-
me’in geniflli¤i sayfan›n toplam geniflli¤inin % 60’› kadar olacakt›r.
Örnekler
cols=”*,*” à ‹ki tane sutün olufltur ve ikisinin genifllikleri ayn› olsun.
(50%,50%)
cols=”2,1” à Birinci frame ikinci frame’in iki kat› genifllikte olacak.
cols=”*,*,50%” à Üç tane sütun olacak birinci ve ikinci frame’lerin
genifllikleri sayfan›n toplam geniflli¤inin %25’i kadar olacak. Üçüncü
frame geniflli¤i ise sayfan›n toplam geniflli¤inin %50’si kadar olacakt›r.
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 294
294 JAVASCRIPT
rows
Sat›r oluflturmak için kullan›l›r. Araya virgül koyarak istedi¤iniz kadar
sat›r oluflturabilirsiniz. rows parametresine girdi¤iniz de¤erler sat›rlar›n
yükseklik de¤erleri olacakt›r. Bu özelli¤e yazd›¤›n›z de¤er say›s›nca sa-
t›r belirtilen uzunluk (yükseklik) de¤erlerine göre oluflturulacakt›r.
rows parametresine de¤er atarken cols özelli¤inde anlat›lan kural ve
yöntemler aynen geçerlidir.
Örnek
Kullan›c›dan al›nan uzunluk de¤erlerine göre 2 sat›rl› 2 sütunlu çerçeve
kümesini yeniden boyutland›rma ifllemini yapal›m. Çerçeve kümesini
tafl›yan sayfam›z frameset.html olacak.
frameset.html
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
</head>
<frameset cols=”*,*” rows=”2,1” id=”cerceve” â
bordercolor=”blue” border=”5”>
<frame src=”menu.html” id=”menu” bordercolor=”gray” />
<frame src=”http://kodlab.com” id=”site1” bordercolor=”red” />
<frame src=”http://www.firat.edu.tr” id=”site2”/>
<frame src=”orta.html” id=”orta”/>
</frameset>
<noframes><body>
</body></noframes>
</html>
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 295
ÇERÇEVELER 295
Sayfam›z› çal›flt›rd›¤›m›zda:
menu.html
296 JAVASCRIPT
var mevcutcols=parent.document.getElementById(“cerceve”).cols;
var mevcutrows=parent.document.getElementById(“cerceve”).rows;
var sutun=prompt(“sütün değerlerini giriniz?”,mevcutcols);
var satir=prompt(“sütün değerlerini giriniz?”,mevcutrows);
parent.document.getElementById(“cerceve”).cols=mevcutcols;
parent.document.getElementById(“cerceve”).rows=mmevcutrows;
</script>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
</head>
<body>
javascript kodları yazıldı...
</body>
</html>
ÇERÇEVELER 297
bordercolor
Border’a renk atamas› yapmak için kullan›l›r. Hem frameset hem de fra-
me içerisinden border’lara renk tan›mlamas› yap›lm›fl ise frame içeri-
sinden yap›lan tan›mlama öncelikli olur.
fleklinde olmal›d›r.
frame Nesnesi
Çerçeve kümesi içerisindeki çerçeve tan›mlamalar›n› yapmak için kul-
lan›l›r.
Özellikleri
• src: Frame içerisine yüklenecek sayfa ad› ya da URL’si.
• id: Javascript HTML DOM ile elemanlara eriflmek için kullan›lan bu
özellik frame nesnesine benzersiz bir isim atamak için kullan›l›r.
• name: Frame’in ad›.
• scrolling: Kayd›rma çubuklar›n› aktif ya da pasif yapar. ‹nternet Exp-
lorer taraf›ndan nesne özelli¤i olarak desteklenmiyor. Etiket içerisinde
HTML karfl›l›¤›n› kulland›¤›n›zda:
scrolling = yes | no | auto şeklinde değerler verebilirsiniz.
298 JAVASCRIPT
ÇERÇEVELER 299
2x
* *
Sütun genifllikleri birbirine eflit
NOT Bir çerçeve kümesinde hem frameset hemde frame’ler içerisinde border-
color tan›mlanm›fl ise bu durumda ilk frame’de tan›mlanan bordercolor
geçerli olacakt›r. Ayr›ca iç içe framesetlerde alt frameset’e herhangi bir
bordercolor tan›mlanmam›fl ise ana frameset içerisinde tan›mlanan bor-
dercolor rengi kullan›l›r.
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 300
300 JAVASCRIPT
Örnek
‹ç içe frameset yap›lar› oluflturabilirsiniz.
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
</head>
<frameset cols=”*,*” rows=”2,1” id=”cerceve” â
bordercolor=”blue” border=”5”>
<frame src=”menu.html” id=”menu” bordercolor=”gray” />
<frame src=”http://kodlab.com” id=”site1”/>
<frame src=”form.html” id=”form”/>
<frameset cols=”*,*”>
<frame src=”http://www.firat.edu.tr” id=”site2”/>
<frame src=”http://www.gyte.edu.tr” id=”site3”/>
</frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>
Sonuç
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 301
ÇERÇEVELER 301
noframes Etiketi
Bu etiketi kullanarak frameset yap›s›n› tan›mayan yani deste¤i olma-
yan taray›c›lar için alternatif içerik oluflturabilirsiniz.
Örnek
302 JAVASCRIPT
›frame Nesnesi
iframe nesnesi ile sayfa içerisinde istedi¤iniz bir alanda baflka bir web
sayfas› ya da doküman› göstermek için bir çerçeve oluflturabilirsiniz.
Oluflturdu¤unuz bu çerçeve bir taray›c› gibi çal›flacakt›r.
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<style type=”text/css”>
body
{
background-color: #DDD;
}
</style></head>
<body>
<table width=”467” border=”1” align=”center”>
<tr>
<td width=”205”><p>Sayfanızı ziyaret eden kullanıcı â
ile ilgili kısa bilgileri saklamak için çerezleri â
kullanabilirsiniz. </p></td>
<td width=”246”><iframe src=”orta.html” width=”250” â
height=”150”></iframe></td>
</tr>
</table>
</body>
</html>
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 303
ÇERÇEVELER 303
Özellikleri
• src: iframe içerisine yüklenecek sayfa ad› ya da URL’si.
• id: iframe nesnesine benzersiz bir isim atamak için kullan›l›r.
• height: iframe’in yüksekli¤i.
• width: iframe’in geniflli¤i.
• name: iframe’in ad›.
• frameborder: iframe kenarlar›n›n olup olmayaca¤›n› ayarlayabilirsi-
niz. ‹nternet Explorer taraf›ndan nesne özelli¤i olarak desteklenmiyor,
fakat etiket içerisinde kullanabilirsiniz.
frameborder = 1 | 0 eğer 1 değerini atarsanız kenarlık
olacaktır.0 değerinde ise kenarlık olmaz.
304 JAVASCRIPT
<title>Untitled Document</title>
</head>
<body bgcolor=”gray”>
<iframe src=”http://kodlab.com”
name=”kodlab”
frameborder=”0”
height=”300”
width=”300”
scrolling=”auto”>
</iframe>
</body>
</html>
Örnek
Sayfa içerisinde select nesnesi ile oluflturdu¤umuz bir aç›lan kutumuz
olsun ve aç›lan kutu içerisinde kullan›c›n›n seçti¤i sayfa iframe içerisi-
ne yüklensin.
ÇERÇEVELER 305
<title>Untitled Document</title>
<script type=”text/javascript”>
function islem()
{
var say=document.getElementById(“sec”).selectedIndex;
var sayfaadresi=document.getElementById(“sec”).options[say].value;
document.getElementById(“yaz”).src=sayfaadresi;
}
</script>
</head>
<body>
<select id=”sec” onchange=”islem()”>
<option>Seçim Yapınız</option>
<option>Milli Eğitim Bakanlığı</option>
<option>Kodlab Yayın Evi</option>
<option>Fırat Üniversitesi</option>
<iframe id=”yaz” width=”400” height=”300”></iframe>
</select>
</body>
</html>
+JAVASCRIPT-BOLUM14 7/30/09 9:31 PM Page 306
306 JAVASCRIPT
index numaras›n› bildi¤imiz bir eleman› referans olarak almak için ya-
ni o elemana ulaflmak için options[index numarası] kulland›¤›m›z›
hat›rlay›n:
var sayfaadresi=document.getElementById(“sec”).options[say].value;
ÇEREZLER
15
Çerez Oluflturma 307
Çerezi Okumak 309
Sayfan›z› ziyaret eden kullan›c› ile ilgili k›sa bilgileri saklamak için çe-
rezleri kullanabilirsiniz. Bu bilgiler kullan›c› bilgisayar›nda küçük text
dosyalar›nda saklan›r. Örne¤in; kullan›c› sayfan›z› ziyaret etti¤inde bu
sayfay› en son ziyaret etti¤i zaman›, sayfaya kaç›nc› defa girdi¤ini ya da
basitçe hoflgeldin mesaj› gösterebilirsiniz. Çerezlerin kullan›labilmesi
için kullan›c›n›n bilgisayar›nda çerezlere izin verilmifl olmas› gerekir.
document.cookie bir metin dizisi olarak kullan›c›n›n bilgisayar›nda
var olan çerez (cookie) bilgilerini saklar.
Çerez Oluflturma
document.cookie=cerezadi+”=”+escape(deger)+”;expires=”+sonkultarih;
cerezadi: Çerezin ismi.
deger: Çerez içerisinde saklayaca¤›n›z veri.
sonkultarih: Çerezin son kullanma tarihi, e¤er bir tarih belirtmemifl-
seniz taray›c›y› kapatt›¤›zda ya da bilgisayar kapand›¤›nda oluflturdu¤u-
nuz çerez silinir. Son kullanma tarihi GMT(utc) zaman standart›nda ol-
mal›d›r.
+JAVASCRIPT-BOLUM15 7/30/09 9:32 PM Page 308
308 JAVASCRIPT
ÇEREZLER 309
Sayfam›za bakal›m:
Çerezi Okumak
Kullan›c›n›n bilgisayar›nda bir çerezin var olup olmad›¤›n› kontrol et-
memiz gerekir. Çerez kullan›c› taraf›ndan silinebilir. Ya da çerez için
son kullanma tarihi geçmifl olabilir.Bu durumda çerezin var olup olma-
d›¤› kontrol edilmelidir.
Örnek
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
+JAVASCRIPT-BOLUM15 7/30/09 9:32 PM Page 310
310 JAVASCRIPT
<title>Untitled Document</title>
<script type=”text/javascript”>
function cerez_kontrol()
{
document.write(document.cookie);
// sonuç: ad=harun; meslek=bilgisayar
}
</script>
</head>
<body>
<input type=”button” value=”Çerezi Kontrol Et” â
onclick=”cerez_kontrol()”/>
</body>
</html>
Örnek
Kodlar›m›za geçelim:
ÇEREZLER 311
background-color:#DDF9E0;
border-style:solid;
border-width:thin;
width:150px;
height:50px;
border-color:#333;
}
</style>
<script type=”text/javascript”>
function cerez_oku()
{
var cerezadi=document.getElementById(“ad”).value;
// metin kutusundaki değer cerezadi değişkenine atandı.
var ara=cerezadi+”=”;
var konum1=document.cookie.indexOf(ara);
/*
ara değişkenine atanacak değer document.cookie metin dizisi
içerisinde aranacak.Eğer bulunursa indexOf() metodu cerezadi
değişkenine atanmış ilk karakterin index numarasını , bulamazsa
-1 değerini döndürür.
*/
if(konum1!=-1)// eğer aranan değer bulunursa
{
konum1=konum1+cerezadi.length+1;
konum2=document.cookie.indexOf(“;”,konum1);
if(konum2==-1)
{
konum2=document.cookie.length;
}
var deger=unescape(document.cookie.substring(konum1,konum2));
document.getElementById(“yaz”).innerHTML=deger;
}else{
document.getElementById(“yaz”).innerHTML=”Belirtilen â
isme sahip çerez bulunamadı”;
}
}
</script>
</head>
<body>
Çerez Adını Yazınız<br />
+JAVASCRIPT-BOLUM15 7/30/09 9:32 PM Page 312
312 JAVASCRIPT
Sayfam›z› çal›flt›rd›¤›m›zda:
ÇEREZLER 313
ad=harun; meslek=bilgisayar
314 JAVASCRIPT
Örnek
Sayfa yüklendi¤inde afla¤›daki flekilde bir mesaj penceresi belirsin ve
kullan›c› e¤er Tamam derse kullan›c›n›n ad› ve soyad› sorulsun.
ÇEREZLER 315
fleklinde kullan›c› kendi ad›n› içeren bir hofl geldiniz mesaj› ile karfl›la-
flacak.
Kodlar›m›z
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; â
charset=utf-8” />
<title>Untitled Document</title>
<script type=”text/javascript”>
function sor()
{
if(confirm(“Sayfamızın sizi tanımasını istermisiniz ?”))
{
cerez_olustur();
}
}
+JAVASCRIPT-BOLUM15 7/30/09 9:32 PM Page 316
316 JAVASCRIPT
function cerez_olustur()
{
var cdegeri=prompt(“Ad ve Soyadınızı Giriniz”,””);
if(cdegeri==”” || cdegeri==null)
{
return;
}
/*
eğer kullanıcı girdi kutusuna bir metin girmezse yada
girdi kutusunda iptal’e basarsa çerez oluşturulmayacak!
*/
var cerezadi=”adsoyad”;
var gun=10;
var bugun=new Date();
bugun.setDate(bugun.getDate()+gun);
document.cookie=cerezadi+”=”+escape(cdegeri)+”;expires=”+bu-
gun.toGMTString();
}
function cerez_oku()
{
var cerezadi=”adsoyad”;
var ara=cerezadi+”=”;
var konum1=document.cookie.indexOf(ara);
if(konum1!=-1)
{
konum1=konum1+cerezadi.length+1;
konum2=document.cookie.indexOf(“;”,konum1);
if(konum2==-1)
{
konum2=document.cookie.length;
}
var deger=unescape(document.cookie.substring(konum1,konum2));
alert(deger+” “+”Sayfamıza Hoş Geldiniz!”);
}else{
sor();
}
}
</script>
</head>
<body onload=”cerez_oku()”>
</body>
</html>
+JAVASCRIPT-BOLUM15 7/30/09 9:32 PM Page 317
ÇEREZLER 317
+JAVASCRIPT-BOLUM15 7/30/09 9:32 PM Page 318
318 JAVASCRIPT