Bireysel Mesaj Gösterim Modu

Görüntülenme: 14037

JavaScript ile bir fonksiyon yazdım ve başka yerlerden bu fonsiyonu çağırdım. Ancak, fonksiyona gelen isteğin, hangi nesneden geldiğini öğrenmek için, yeni bir parametre tanımlamak zorunda kaldım.

Daha somut olsun, örnek vereyim.

function Download(pSender, pURL){
  var strHTML=""
  if (pSender!=null){
   var strTitle=pSender.innerText;
   strHTML = "<span id='spnTitle'><b>" + strTitle + "</b></span><br>";
  }

strHTML += "<br><span id='spnDownload'><a href='" + pURL + "'><b>İndir</b></a></span>";
 
  document.getElementById("divWMP").innerHTML=strHTML;
}

Bu fonksiyonu çağıran linklerimiz şöyle olacaktır.

<a href="#" onclick="Download(this, 'http://www.freewebtown.com/m1gin/kisisel/kapi.wma')">Mustafa Birgin - Kapıyı Kim Çaldı?</a><br>
<a href="#" onclick="Download(this, 'http://www.freewebtown.com/m1gin/audio/Miyav_Miyav.mp3')">Mustafa Birgin & Mustafa Kütükçü - Miyav Miyav</a><br>

Görüldüğü gibi, her kullanımda, "this" ibaresini kullanmak durumunda kalıyoruz.
Acaba bunu kullanmadan, fonksiyona istek gönderen nesneyi öğrenebilir miyiz?

Uzun süre araştırdım; belki doğru anahtar kelimeleri kullanmadım, ama olumlu bir sonuç elde edemedim. Zaten o yüzden yukarıdaki yöntemi kullandım.
Ve az önce, tesadüfen (belki tevafuken) bir örneğe rastladım! İçerisinde "event.srcElement" gibi bir bölüme rastladım. Heyecanla, hemen denemeye giriştim.

function Download(function Play(pURL){
  var pSender = event.srcElement;
  var strHTML=""
  if (pSender!=null){
   var strTitle=pSender.innerText;
   strHTML = "<span id='spnTitle'><b>" + strTitle + "</b></span><br>";
  }

strHTML += "<br><span id='spnDownload'><a href='" + pURL + "'><b>İndir</b></a></span>";
 
  document.getElementById("divWMP").innerHTML=strHTML;
 }

Böylece bu fonksiyonu çağırırken, "this" ibaresini kullanmak zorunda olmayacaktım artık!

<a href="#" onclick="Download('http://www.freewebtown.com/m1gin/kisisel/gosteri.wma')">Mustafa Birgin - Gösteri</a><br>
<a href="#" onclick="Download('http://www.freewebtown.com/m1gin/audio/Daniel_Bernoulli.wma')">Mustafa Birgin - Daniel Bernoulli</a><br>

Yaşasın event.srcElement

Tüm olay buydu!
Yararlı olması umuduyla...

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
Abonelik Bilgisi Abonelik
Kullanıcı Adı:
Parola:
Bilgi Hatırlatma Yeni Üyelik
İletişim | Kullanım Şartları | Reklam Bilgileri | Tüm Üyeler | Ne Nasıl Yapılır? | Arama | RSS | Twitter | Facebook | Youtube

Son Üyeler: Gakk, busbus, siyamiaytar, 1234123123123, Siyami,
Son Oturumlar: