Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

JavaScript kullanarak başka bir JavaScript dosyasını yüklemek

JavaScript kullanarak, başka bir JavaScript dosyasını nasıl yükleyebilirim?

Soran:07.04.16 21:57
misafir  

1 Cevap

0
JQuery ile etiketlemişsiniz. Eğer JQuery kullanmak isterseniz aşağıdaki işinizi görecektir:
$.getScript("JavaScriptDosyasi.js", function(){
   console.log("Dosya yüklendi.");
});
JQuery kullanmak istemezseniz (ben de tercih etmiyorum) aşağıdakini deneyin:
function scriptYukle(url, yuklendiFonksiyonu)
{
	// Sayfanın "head" etiketinin referansını al.
	var head = document.getElementsByTagName('head')[0];
	// Bir "script" etiketi oluştur.
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = url;
	// Etiket yüklendiğinde çalıştıralacak olan geri çağırma fonksiyonuna yuklendiFonksiyonu
	// parametresini ata. Bu şekilde etiket yüklendiğinde parametre olarak bildirilen bu
	// fonksiyon çalıştırılacak ve biz de yüklendiğinde işimize devam edebileceğiz.
	script.onreadystatechange = yuklendiFonksiyonu;
	script.onload = yuklendiFonksiyonu;
	// Etiketi "head" etiketinin alt kontrollerine ekle.
	head.appendChild(script);
}

// Kullanımı : 


// Bu fonksiyon dosya yüklendikten sonra çalıştırılır.

function scriptYuklendi() {
	console.log("Yüklendi. Artık kullanabiliriz.");
}

// İkinci parametrenin fonksiyon adı olduğuna dikkat edin.

scriptYukle("JavaScriptDosyasi.js", scriptYuklendi);


// veya şu şekilde de kullanabiliriz.

scriptYukle("JavaScriptDosyasi.js", function() {
	console.log("Yüklendi. Artık kullanabiliriz.");
});
Son kullanımda bir fonksiyon adı bildirmek yerine isimsiz bir fonksiyon tanımı yazdık. Fonksiyon sadece burada çalıştırılacağından gayet kullanışlı ve özet bir kullanımdır.


Cevaplayan: 07.04.16 19:09
cevapsitesi
102,035p 16ü
Cevabı seçen: 08.06.16 00:03
canora
101,387p 4ü