İçindekilerGirişİndex
YukarıİlkÖncekiSonraki YokSon
Geriİleri
Yazdır

OLAYLAR

Olaylar

Browser programları, olaylı bir yaşama sahiptir! Ya bilgisayar sistemi, ya da kullanıcı (ziyaretçi), sürekli bir takım olayların (Event) oluşmasına sebep olurlar. Ya Mouse'un bir düğmesine basılır "Click" adı verilen olay oluşur; ya klavyede bir tuşa basılır, "KeyDown" olayı oluşur. Bir HTML sayfasının yüklenmesi biterse "Load," sayfadan çıkma işlemi tamamlanırsa "unLoad" olayı olur

Her Pencere, Browser veya Kullanıcı olayına karşılık, Javascript'in bir Olay Yönlendiricisi (Event Handler) vardır. Olay Yönlendirici, olayın adını taşır. Örneğin, kullanıcının Mouse'un bir düğmesini tıklaması, Click, bu olayı karşılayan ve yönlendiren metod ise onClick (tıklandığında, tıklama halinde) adını taşır. Javascript programcısı olarak bu olayların tümü bizi ilgilendirmediği gibi, nesnelerimiz de çoğunlukla bu olaylara ilgi göstermezler. Bizi yakından ilgilendiren nesneler ve onların olaylarla ilgisini ...... tabloda görebilirsiniz

Event Handler'ları, bir tür adlandırılmış ama içi boş fonksiyonlar gibi düşünebilirsiniz. Programcı olarak bize düşen, bu olay karşısında olay yöndendiricisinin ne yapmasını istediğimi belirtmekten ibarettir. Event Handler'lar, daha önceden hazırladığımız bir fonksiyonu göreve çağırabilir; veya hemen oracıkta bir Javascript metodunu da devreye sokabiliriz. Mesela:

<INPUT TYPE="text" SIZE=50 MAXLENGTH=100 NAME="soyadi" onChange="denetle(this)">

Ziyaretçi bu INPUT kutusuna soyadını yazdığında, kutunun içeriği değişmiş olacak ve bu Change (değişiklik) olayı, kendisini yöndendiren onChange sayesinde, önceden hazırladığımız "denetle()" isimli fonksiyonu çağıracaktır. Burada gördüğünüz "this" (bu) kelimesi, Javascript'e fonksiyonun istediği değer kümesi olarak bu nesnenin içeriğini vermesini bildiriyor. İlerde örneklerde bunu sık sık kullandığımızı göreceksiniz.

Şimdi sık kullandığımız olayları ve yönlendirilcilerini daha yakından tanıyalım

onClick

Ziyaretçinin, Mosue işaretçisi tıklanabilir bir nesne üzerinde iken Mouse'nun düğmesine basması, Click olayını doğurur; bu olayı onClick yönlendirir. Düğmeler, işaretleme kutuları, radyo düğmeleri ve bağlantılar tıklanabilir. Olayın oluşması için varsayılan Mouse düğmesinin basılması ve bırakılması gerekir. Düğme basılı durursa, Click olayı gerçekleşmiş olmaz.

onClick yönlendiricisine, "Click" olayı halinde ne yapmasını istediğinizi ait olduğu nesnenin HTML etiketi içinde bildirmeniz gerekir. Aşağıdaki kodu düz yazı programınızda yazar ve onClick01.htm adıyla kaydederseniz, onClick yönlendiricisi için program yazmış olacaksınız:

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <HTML>
  2 <HEAD>
  3 	<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
  4 	<TITLE>JavaScript'te onClick</TITLE>
  5 	<SCRIPT LANGUAGE="JavaScript1.2">
  6 	<!-- Javascript kodunu eski sürüm Browserlardan saklayalim
  7 		//onClick icin fonksiyonlar
  8 		function resim1()
  9 		{
 10 			resim1Pencere = window.open("resim1.htm", "Resim1", "toolbar=0, width=200, heigth=400,resizeable=0");
 11 		}
 12 		function resim2()
 13 		{
 14 			resim2Pencere = window.open("resim2.htm", "Resim2", "toolbar=0, width=200, heigth=400,resizeable=0");
 15 		}
 16 	// -->
 17 </SCRIPT>
 18 </HEAD>
 19 <BODY>
 20 	<H1>Dügmelerden birini tiklayiniz!</H1>
 21 	<INPUT TYPE="button" NAME="Resim1" VALUE="Resim 1" onClick=resim1()>
 22 	<INPUT TYPE="button" NAME="Resim2" VALUE="Resim 2" onClick=resim2()>
 23 </BODY>
 24 </HTML>

Bu kodda adı geçen resim1.htm ve resim2.htm adını vereceğimiz ve iki küçük resim içeren sayfaları da oluşturalım (Elinizde hazır bir grafiğin adını verebilirsiniz).

<html>
<head>
<title>Resim 1[veya Resim 2]</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</head>
<body>
<h1>Resim 1[veya Resim 2]</h1>
<p>
<img src="resim1.gif" width="151" height="278" alt="uzayli.tif (4942 bytes)">
</p>
</body>
</html>

Bu üç sayfayı oluşturduktan sonra onClick.htm'de sırayla her iki düğmeyi de tıklayın; her Click olayında onClick yönlendiricisinin farklı fonksiyonları çağırdığına dikkat edin.

Kimi zaman onClick yönlendiricisi, bağlantı nesnesi ile doğrudan kullanılabilir. Bağlantı nesnesi olan <A HREF=....> etiketi, bir bağlantı protokolü adresi (URL) verilmesini ister. Ancak HTTP veya FILE protokolü yerine buraya doğrudan JavaScript'in adını ve icra etmesi istenen fonksiyonu yazabilirsiniz. Örneğin, <A HREF="JavaScript:resim1()"> şeklinde bir ifade, protokol olarak Javascript'i göstermemizi sağlayabilir.

onClick01.htm'de INPUT etiketleri yerine, şu iki satırı yazarak, onClick02.htm adıyla kaydedip, Browser'da açın. Düğmelerin yerini bağlantılı iki kelimenin aldığını göreceksiniz; fakat sayfanın işlevi değişmeyecek. onClick, bu kez düğmenin Click olayını değil, bağlantının Click olayını karşılıyor:

<A HREF="JavaScript:resim1()">Resim 1</A>
<A HREF="JavaScript:resim1()">Resim 1</A>

onSubmit

Javascript'in, HTML'i tamamladığı noktaların başında Form ve Form yoluyla elde edilecek bilgilerle ilgili işlemler gelir. Bu işlemlerin başında ise Form'daki bilgilerin Server'a gönderilmeden önce, daha Browser'da iken doğrulanması ve hatalardan arındırılması vardır. Javascript, bunu ziyaretçinin formda, Submit (Gönder) olayına yol açan herhangi bir düğmenin tıklanması halinde yapar. Bir form, ziyaretçi tarafından türü Submit olan bir düğmenin tıklanması halinde, Browser tarafından HTTP protokolü ile Server'a gönderilir. Javascript, onSubmit yönlendiricisi ile bu olaya ilişkin işler yapabilir, fonksiyonlar icra edebilir. Fakat burada dikkat edeceğiniz nokta, "Submit" olayına engel olmamak veya bu işlemi şarta bağladı iseniz, bu şartın yerine gelmesini sağlamaktır. Bunu bir örnek üzerinde görelim. Diyelim ki, HTML sayfanızda, şuna benzer bir FORM etiketi var:

<FORM ACTION="form_islem.pl" METHOD="post" onSubmit="onayla()">

Burada adı geçen "onayla()" fonksiyonu HTML'in HEAD bölümünde yer alıyor ve şuna benzer komutlar içeriyor:

//onSubmit olayını yönlendirme fonksiyonu
function onayla() {
	confirm('Bu siparişi vermek istediğinizden emin misiniz?');
}

İlk bakışta böyle bir "tuzak," formun bir kere daha onaylandıktan sonra gönderileceğini düşündürebilir. Burada gördüğünüz "confirm" komutu, Javascript'e, Browser'ın kullanıcıdan OK (Tamam) ve Cancel (İptal) yazılı bir kutu ile onay almasını sağlar. Kullanıcı OK düğmesini tıklarsa, Browser, Javascript'e "true" (doğru), kullanıcı Cancel (İptal) düğmesini tıklarsa "false" (yanlış) değeri gönderecektir; sanılabilir ki, Javascript'e "true" değeri dönerse formu gönderilecek, fakat "false" değeri dönerse form gitmeyecektir. Bu doğru değil! Her iki değerde de form gidecektir; çünkü, yukarıdaki kodda Browser'ın Confirm kutusunun oluşturacağı değerin türü ile onSubmit olay yönlendiricisi arasında bir bağ kurulmuyor; başka bir deyişle onSumbit'e kendisine dönmesi gereken bir sonuç olduğu bildirilmiyor. Bunu "return" anahtar kelimesiyle sağlarız. "return" (anlamı: geri dön) kelimesi, bir fonksiyona kendisini göreve çağıran unsura mutlaka bir değer göndermesi gerektiğini bildirir. "return" kelimesini kullanarak, Form etiketini şöyle yazabiliriz:

>FORM ACTION="form_islem.pl" METHOD="post" onSubmit="return onayla()">

Dolayısıyla "onayla()" fonksiyonuna da kendisini göreve çağıran komuta bir sonuç ulaştırması gerektiğini bildtirmemiz gerekir:

//onSubmit olayını yönlendirme fonksiyonu
function onayla() {
return confirm('Bu siparişi vermek istediğinizden emin misiniz?');
}

Bu durumda kullanıcı/ziyaretçi "confirm" kutusunun OK (Tamam) düğmesini tıklarsa onSubmit yönlendiricisi Form'u belirtilen CGI programına, işlenmek üzere, gönderecek; Cancel (İptal) düğmesi tıklanırsa, onSubmit yönlendiricisi submit olayını durduracaktır.

onReset

Formlara koyduğunuz Reset (Başa dön) düğmesi, bir Form'daki bütün bilgilerin silinmesini sağlar; Browser'ın Geri düğmesini tıklamak dahil, hiç bir eylem ziyaretçinin yanlışlıkla bastığı Sil düğmesinin sildiğini geri getiremez. Fakat programcı olarak siz böyle bir hatayı önleyebilirsiniz. Çünkü Sil düğmesinin oluşturduğu "reset" olayını yönlendiren onReset, size bu imkanı verir. Tıpkı onSubmit'teki gibi FORM etiketinize onReset tarafından devreye sokulacak bir doğrulama fonksiyonu koyabilirsiniz. Form etiketiniz şöyle olabilir:

<FORM ACTION="form_islem.pl" METHOD="post" onReset="return sahiMi()">

Bu fonksiyonu da HTML'in HEAD bölümünde şöyle yazabilirsiniz:

//onReset olayını yönlendirme fonksiyonu
function sahiMi() {
return confirm('Bu formdaki büktün bilgileri silmek istediğinizden emin misiniz?');
}

Ziyaretçiniz doldurduğu formda, Gönder yerine yanlışlıkla Sil'i tıkladıysa, böylece bir şansa daha kavuşmuş olur.

onChange

HTML sayfanızda olabilecek tek değişiklik, ziyaretçinin içine bir şeyler yazabildiği veya bazı işaretler koyabildiği üç alandır: Text (Metin), Textarea (Metinalanı) ve Select (Seç) etiketleri. Metin ve metinalanın içini tıklayarak Browser Penceresi'nin odak noktasını buraya getiren ziyaretçi klavyesine basarak, bu alanlara metin girebilir; bu HTML sayfasında "change" (değişiklik) olması anlamına gelir Select etiketinin sağladığı şıklardan birini seçen ziyaretçi de sayfada değişiklik olayına yol açar. "change" olayı halinde, onChange bu olayı yönlendirir. Javascript programcısı olarak siz bu yönlendiriciye belirli bir fonksiyonu çalıştırmasını bildirebilirsiniz.

Bunu da bir örnekle ele alalım. Diyelim ki Frame (Çerçeve) esasına dayanan bir ana sayfanız var; ziyaretçinin bir çerçevedeki "select" etiketinin seçeneklerinden birini seçmesi halinde bir diğer çerçevenin içeriği değişsin istiyorsunuz. Ana sayfanızda bir FRAMESET var ve bu üç çerçeveli bir sayfa oluşturuyor. Burada Browser'ın "document" (sayfa) hiyerarşisi içinde Frameset "Parent" (ebeveyn; çünkü diğer bütün Frame'leri o doğuruyor!) ve "Frame 0" (1'nci çerçeve) "Frame 1" (2'nci çerçeve) ve "Frame 2" (3'ncü çerçeve) vardır. "document" nesnesi çerçeveleri bir dizi-değişken içinde tuttuğu ve Array (dizi değişken) numaralanmaya 0'dan başladığı için çerçevelerimiz 0'dan itibaren numaralanıyor. Buna göre sağ Frame'in içeriğini değiştireceğimiz zaman bu çerçeveye "Frame 2" adıyla gönderme yapmalıyız. Frame 1'e şöyle bir FORM koyarsak, daha sonra bu formun değişiklik olayını onChange ile sağ çerçevenin içeriğini değiştirmeye yönlendirebiliriz:

<FORM METHOD="post">
<P><SELECT NAME="hedef" SIZE="1"
	onChange="parent.frames[2].location.href=
		this.form.hedef.options[this.form.hedef.selectedIndex].value"
>
	<OPTION>Seç bakalım<br>
	<OPTION VALUE="test1.htm">Test 1<br>
	<OPTION VALUE="test2.htm">Test 2<br>
	<OPTION VALUE="test3.htm">Test 3<br>
</SELECT><br>
</FORM>

Burada, SELECT nesnesinin içeriği, ziyaretçinin herhangi bir seçeneği seçmesi halinde değişmiş oluyor; bu "change" olayı üzerine bu olayı yönlendirmek üzere kullandığımız onChange ise karşısındaki Javascript komutunu icra etmeye başlıyor. Bu uzun kodda, "this" (bu) anahtar kelimesinin yeniden kullanıldığını görüyorsunuz. Bu kelime, herhangi bir Javascript fonksiyonuna (adı fonksiyon olmamakla birlikte burada yazdığımız kod da bir fonksiyonun görevini yapıyor) ihtiyacı olan bilgileri bu nesneden almasını bildiriyor. "Bu" diye nitelediğimiz nesne, içinde bulunduğumuz FORM'un SELECT ögesidir. SELECT ögesinin OPTION'ları, bu nesnenin OPTIONS dizi-değişkeninde numaralanır ve seçilen OPTION'ın numarası "selectedIndex," içeriği ise ".value" adıyla adlandırılır. Nesneleri ve özelliklerini ele aldığımız bölümde bu konuya yeniden döneceğiz.

onFocus, onBlur

Bilgisayarda bir program açıkken, Mouse ile programın başlık çubuğunu tıklayın; çubuğun renginden işletim sisteminin dikkatinin bu programın penceresinde yoğunlaştığını göreceksiniz. Bir de masaüstünde boş bir yeri tıklayın; bu pencere sistemin odak noktası olmaktan çıkacaktır. HTML sayfasında da Browser'ın Focus'unu (dikkat odağını) üzerinde topladığı veya odağın çekildiği üç nesne olabilir: Text (Metin), Textarea (Metinalanı) ve Select (Seç) etiketleri. Çünkü ziyaretçinin sadece bu etiketlerin oluşturduğu nesnelere klavyenin dikkatini çekme hakkı vardır. Bu nesnelerden biri tıklanınca Browser'ın focus'u bu nesneye dönmüş, yani "focus" olayı olmuş demektir; bu durumda, biz de bu olayı yönlendiren onFocus'u kullanabiliriz. Aynı mantıkla, ziyaretçi Browser'ın focus'unu bu nesneden başka bir yere çektiği zaman bu nesne focus'u kaybeder, "blur" (netlikten çıkma, flulaşma) olayı olur. Bunu da onBlur ile yönlendiririz. Bu iki yönlendiricinin birlikte kullanıldığı şu örnek kodu, onFocus.htm adıyla kaydederseniz ve Browser'da ekrandaki talimatları izlerseniz, her iki yönlendiriciyi de kullanmış olacaksınız:

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <HTML>
  2 <HEAD>
  3 	<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
  4 	<TITLE>JavaScript'te onFocus ve onBlur</TITLE>
  5 	<SCRIPT LANGUAGE="JavaScript1.2">
  6 	<!-- Javascript kodunu eski sürüm Browserlardan saklayalim
  7 		// fonksiyonlari tanimlayalim
  8 		function goster()
  9 		{
 10 			document.isimForm.ad.value="Adiniz kayda geçmistir."
 11 		}
 12 		function uyar()
 13 		{
 14 			document.isimForm.ad.value="Lütfen yanlislik yapmayiniz!"
 15 		}
 16 	// -->
 17 	</SCRIPT>
 18 </HEAD>
 19 <BODY>
 20 <BR>
 21 	<FORM NAME="isimForm">
 22 		<P>Lütfen adinizi yazin ve sayfa üzerinde baska bir yeri tiklayin:
 23 		<BR><INPUT TYPE="text" NAME="ad" VALUE="Adinizi buraya yaziniz" SIZE=25 onBlur="goster()">
 24 		<P>Simdi de asagidaki kutuya mesleginizi yazin:
 25 		<BR><INPUT TYPE="text" NAME="meslek" VALUE="Mesleginizi buraya yaziniz" SIZE=25 onFocus="uyar()">
 26 	</FORM>
 27 </BODY>
 28 </HTML>

Javascript, üstteki kutuya adınızı yazdıktan sonra başka bir yeri tıkladığınızda olan iş, "ad" isimli metin kutusunun "blur" olayına onBlur'ün çağırdığı goster() fonksiyonu ile; alttaki kutuyu mesleğinizi yazmak üzere tıkladığınız anda "meslek" kutusunda olan "focus" olayına da uyar() fonksiyonu ile karşılık veriyor.

onMouseOver, onMouseOut

Javascript dünyasında en çok kullanılan iki "event" varsa, birincisi Mouse işaretçisinin bir nesnenin üzerine gelmesi ("MouseOver" olayı), ikincisi ise Mouse iuşaretçisinin bir nesnenin üzerinden çekilmesi ("MouseOut" olayı) sayılabilir. Bu iki olayı onMouseOver ve onMouseOut yönlendiricileri ile karşılayabiliriz. Gerçekte bu iki olayla, Mouse işaretçisi bir bağlantı satırı veya grafiğinin ve bir grafik haritasının (Map, Area) üzerine geldiği veya üzerinden çekildiği zaman ilgilenebiliriz; çünkü diğer HTML unsurları ve Javascript nesneleri ile Mouse işaretçisinin işaretleme ilişkisi yoktur. Bu olayı ve yönlendirilmesini, şu küçük programda görebiliriz:

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <HTML>
  2 <HEAD>
  3 	<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
  4 	<TITLE>JavaScript'te Fonksiyon</TITLE>
  5 	<SCRIPT LANGUAGE="JavaScript1.2">
  6 	<!-- Javascript kodunu eski sürüm Browserlardan saklayalim
  7 		// fonksiyonu tanimlayalim:
  8 		function faregelince()
  9 		{
 10 			window.status = "En güzel site için burayi tiklayin!";
 11 			return true
 12 		}
 13 		function faregidince(){
 14 			window.status = "En güzel siteye gitme firsatini kaçirdiniz!"
 15 			return true
 16 		}
 17 	// -->
 18 </SCRIPT>
 19 </HEAD>
 20 <BODY>
 21 	<A HREF="http://pcworld.com.tr" NAME="bag" onMouseOver="return faregelince()" onMouseOut="return faregidince()">PC World-Türkiye</A>
 22 </BODY>
 23 </HTML>

Bu kodu onMouseOver.htm adıyla kaydeder ve Mouse işaretçisini PCWORLD-TÜRKİYE bağlantısının üzerine getirirseniz, Browser'ınızın alt çerçevesindeki statü mesajı yerinde "En güzel site için burayı tıklayın!", geri çektiğinizde de "En güzel siteye gitme fırsatını kaçırdınız!" mesajını göreceksiniz.

onLoad, onUnLoad

Javascript açısından Browser'ın bir HTML sayfasını görüntülemeyi bitirmesi sayfanın "load" (yükleme), başka bir sayfaya geçilmesi ise önceki sayfanın "unload" (yüklenmişlikten çıkması) sayılır; ve bu iki olayı onLoad ve onUnLoad yönlendiricileri ile karşılayabiliriz. HTML dosyasının iki bölüm (HEAD ve BODY) olduğunu biliyorsunuz. Browser açısından asıl sayfa, BODY bölümüdür; HEAD bölümündeki komutlar sayfanın nasıl görüntüleneceğine ilişkin komutlar içerir.

Bir sayfa Browser'a yüklenirken yapabileceğimiz bir çok işten birisi, ziyaretçinin Browser'ının türünü yoklamak olabilir. O halde, BODY etiketini şöyle yazarsak;

<BODY onLoad="hangiBrowser()">

ve HTML'in HEAD bölümüne bu fonksiyonu koyarsak, sayfamız yüklenirken bize ziyaretçinin Netcape mi, yoksa Internet Explorer mı kullandığını bildirebilir. Bu bilgiyi nasıl değerlendirebileceğimiz ise ayrı bir konu.

"hangiBrowser()" fonksiyonu şöyle olabilir:

// hangiBrowser fonksiyonunu tanımlayalım:
var Browser=navigator.appName + " " + navigator.appVersion;
var getkey=Browser.substring(0, 12);
function hangiBrowser()
{
	if (Browser.substring(0, 8)=="Netscape")
		window.location="netscape4.htm";
	if (Browser.substring(0, 9)=="Microsoft")
		window.location="ie.htm";
	if ((Browser.substring(0, 8)!="Netscape")
		&& (Browser.substring(0, 9)!="Microsoft"))
		window.location="belirsiz.htm";
	}
// -->

Bu iki kodu içeren sayfanızı onLoad.htm adıyla kaydeder ve aynı dizine, içinde "Netscape kullanıyorsunuz! yazılı ve adı "netscape.htm"; içinde "IE kullanıyorsunuz!" yazılı ve adı "ie.htm", ve içinde "Ne tür Browser kullandığınızı anlamadık!" yazılı ve adı "belirsiz.htm" olan üç HTML dosyası koyarsanız, onLoad.htm'i açmak istediğinizde kullandığınız Browser hangisi ise (onLoad.htm'in değil) diğer üç dosyadan birinin açıldığını göreceksiniz. Bir sayfada başka bir sayfayı işaret eden bir bağlantıyı tıkladığınızda, Browser açık olan HTML kodunu silecek, yani sayfayı yüklenmemiş hale getirecektir. Bu Javascript açısından bir UnLoad olayıdır. O halde, BODY etiketimize onUnLoad yönlendiricisini harekete geçiren bir fonksiyonu çağırmasını söyleyebiliriz.

Aşağıdaki HTML konudu onUnLoad.htm, ve bir HTML sayfasına da sadece "Güle Güle.. Yine Bekleriz!" yazarak, gulegule.htm adıyla kaydederseniz sayfanız kapanırken ziyaretçinize veda etme imkanınız olur. (Ama çoğu ziyaretçinin bundan hoşlanmayacağına emin olabilirsiniz!)

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <HTML>
  2 <HEAD>
  3 	<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
  4 	<TITLE>JavaScript'te onUnLoad</TITLE>
  5 	<SCRIPT LANGUAGE="JavaScript1.2">
  6 	<!-- Javascript kodunu eski sürüm Browserlardan saklayalim
  7 		// gulegule fonksiyonunu tanimlayalim:
  8 		function gulegule()
  9 		{
 10 			gulegulePencere = window.open("gulegule.htm", "GuleGule", "toolbar=0, width=200, heigth=400,resizeable=0");
 11 		}// -->
 12 	</script>
 13 </head>
 14 <body onUnLoad="gulegule()">
 15 	Bu sayfa size güle güle diyecek!!
 16 	<A HREF="test1.htm">Baska sayfa</A>
 17 </body>
 18 </html>

Buradaki BODY etiketi, Browser başka sayfaya geçmek üzere mevcut sayfayı sildiği anda, Browser'a yeni bir pencere açarak, bu pencerede gulegule.htm'i görüntülemesini sağlayacaktır

onError, onAbort

Ziyaretçinin Browser'ı açmak üzere olduğu sayfayı transfer hatası yüzünden açamaz, HTML veya Javascript kodunu doğru yorumlayamazsa, Error (hata) olayı oluşur. Javascript, sadece kendisine ilişkin hata durumlarını onError ile yakalayabilir.

Javascript'in Browser penceresiyle ilgili hatasını yakalamak istediğiniz kod, HTML'in HEAD bölümünde, SCRIPT etiketleri içinde ve "window.onerror" kelimeleri küçük harfle yazılmış olarak bulunmalıdır

window.onerror=hataHalinde()
function hataHalinde (message, url, lineNumber)
{
	messageList = new Array()
	urlList = new Array()
	lineNumberList = new Array()
	messageList[messageList.length] = message
	urlList[urlList.length] = url
	lineNumberList[lineNumberList.length] = lineNumber
	alert(messageList[0] +
		"\ndosya adı " + urlList[0] +
		"\nsatır sayisi " + lineNumberList[0])
	return true
}

Bu kodu üzerinde çalıştığınız Javascript kodu içeren bir HTML sayfasına yerleştirdiğiniz taktirde olabilecek hatalar bir Uyarı kutusuyla size bildirilir. Sayfanın ve Javascript'in hatasız çalıştığını anladıktan sonra bu kodu kaldırabilirsiniz.

Javascript, sayfalarınızdaki grafik unsurların da hata halini yakalayabilir. HTTP iletişiminde, en sık görülen transfer hatası grafik unsurların aktarılması sırasında olur; ayrıca HTML tasarımı sırasında grafik dosyalarının sayfaya veya sitenin kök dizinine göre göreli adresinin yazılmasında sık yapılan hatalar, gTextrafik unsurl aktarılmasını engeller. Bu tür hatalarda ziyaretçinizi şu Javascript koduyla uyarabilirsiniz:

<IMG NAME="resim01" SCR="resim1.gif" 
	orError="alert('resim1.gif aktarılamıyor; özür dileriz')"
>

Sayfalarınıza koyduğunuz grafik unsurlar ziyaretçilerinizin sabrını taşırır da, grafiklerin sonuna kadar aktarılmasını beklemeden Browser'ın Stop düğmesini tıklarlarsa, bunun sayfanız için kötü sonuçları olabilir. Grafik unsurlara bağlantı belirten alan haritaları (AREA, MAP) etiketleri koymuş olabilirsiniz

Ziyaretçinin Browser'ının Stop düğmesini tıklaması, Javascript açısından abort (yarıda kes) olayının doğması demektir; bunu onAbort ile yönlendirebilirsiniz. Bu yönlendiriciden yararlanarak ziyaretçiye sayfanın eksik olduğunu bildirmeniz yerinde olur. Bunun için IMG etiketini şöyle yazabilirsiniz:

<IMG 
NAME="resim01"
SCR="resim1.gif"
onAbort="
	alert('Sayfanının bütün unsurları aktarılamadı
	beklediğiniz sonucu alabilmek için bütün unsurların aktarılması yerinde olur')
"
>

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonraki YokSon
Geriİleri
Yazdır