Farklı sayfalarda farklı javaScript kodları çalıştırmak
Merhaba arkadaşlar. Nasıl yapmamın en doğru olacağını bilemediğim bir soru ile karşınızdayım. Ben javaScript ve php kullanarak web siteleri oluşturan biriyim. Fakat artık javaScript kodlarımı tamamen dosyalarda tutmaya karar verdim çünkü html içinde script kullanmaktan sıkıldım, bıktım. Fakat bu sefer de şöyle bir durum oluşuyor. Örneğin üyelik sayfasına özel bir uyelik.js dosyasını ben gidip de ana sayfaya include edemem. Zaten sitem dinamik olduğu için de böyle bir şey yapmak istemem. Fakat bu dediğimi nasıl yapabileceğimi bilmiyorum. Yani php ile get'ten gelen sayfa değerini kontrol edip ona göre include etme işlemini yapayım diyorum ama her şeyi head bölümünde ya da body bölümünün altında yapmak zorunda olduğum için fazla kod oluşacak. Javascript tarafında window.location.href değrini alıp ona göre kodları yazayım diyorum fakat bunun da doğruluğundan şüphe ediyorum. Sizce farklı sayfalarda farklı javaScript dosyalarını kullanmak için ne yapmam en doğru tercih olur? Teşekkürler.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (7)
@0kan87 hocam doğrusunu elbette siz de bilirsiniz de hani bu dediğiniz yapıda işlem yapmak biraz karmaşıklığa sebep olmaz mı her işlemi tek bir dosyada tutmak ve oradan arayıp bulmak daha pratik değil mi?
@0kan87 Dediğin maalesef çok kullanışlı değil. Bunu yapabilirim ama kullanışlı değil. Bunun için birkaç yerde php get yapısını kullanmam gerekir.
Kodlarınız kullanım için uygun görünüyor. Çok teşekkür ederim.
hocam ben window.location.href kullanıyorum bu işlem için uzun zamandır ve hiçbir sıkıntı yaşamadım projelerimde gönül rahatlığı ile kullanınız aşağı da örnek kod yapımı da bırakıyorum...
const pathname = window.location.pathname.substr(1);
if (pathname == "panel/yetkililer" || pathname == "panel/bloglar") { // Datatables
$("#example1").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false
});
}
// bu kod yapısını incelerseniz istediğiniz sonuca ulaşırsınız..
hocam ben window.location.href kullanıyorum bu işlem için uzun zamandır ve hiçbir sıkıntı yaşamadım projelerimde gönül rahatlığı ile kullanınız aşağı da örnek kod yapımı da bırakıyorum...
const pathname = window.location.pathname.substr(1);
if (pathname == "panel/yetkililer" || pathname == "panel/bloglar") { // Datatables
$("#example1").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false
});
}
// bu kod yapısını incelerseniz istediğiniz sonuca ulaşırsınız..
Anladığım kadarıyla böyle bir şey istiyorsunuz.
<script>
/*
Adres : http://www.deneme.com/detay.aspx?sayfa=üyelik
Get'den gelen değeri alıyoruz
*/
var vars = [], hash;
var q = document.URL.split('?')[1];
if(q != undefined){
q = q.split('&');
for(var i = 0; i < q.length; i++){
hash = q[i].split('=');
vars.push(hash[1]);
vars[hash[0]] = hash[1];
var sayfa = vars['sayfa'];
}
}
// Değeleri if ile kontrol ediyoruz eğerki get değeri üyelik ise üyelik.js dosyasını çalıştırır değilse çalıştırmaz.
if(sayfa == "uyelik"){
var bolum = document.createElement("script");
bolum.src = "uyelik.js";
document.head.appendChild(bolum);
}
</script>