Çözüldü JS kodu 2 ayrı sayfada çalışması gerekirken kodlar sayfa yüklenmeden çalışıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

249873

Kilopat
Katılım
17 Şubat 2019
Mesajlar
5.050
Çözümler
20
Arkadaşlar bir array oluşturdum. Ürünler adında. Bu var olan ürünler shop.html sayfasında array. Length mantığı ile yazdırıyorum.
2. sayfam ise tıkladığım ürünün detaylar sayfası satın alma sayfası yani. Ürüne tıkladığımda beni detaylar.html'e attırıyorum. detaylar.html sayfasında ise tıkladığım ürün'ün detayları bulunuyor bunu da array içinden çekiyorum.

Ancak hata alıyorum. Birincisi shop.html'de ürüne tıkladığımda ürünün array elemanını yönlendirip detaylar.html'de yazdıramıyorum. 2.si de detaylar.html yüklenince shop.html'e tekrar ürünleri eklemeye çalışıyor ve ekleyemeyip hata veriyor.

Ürünler array =>



Ürünleri yaratıyorum =>



Burada ise yarattığım ürünleri listeleyip Click Event'i ekliyorum =>



Burada da ürünün detayını yaratıyorum=>



shop.html çıktısı =>



detaylar.html çıktısı boş maalesef.



Proje linki: GitHub - hdogukanozkan/new-test
Çıktı: Document
 
Son düzenleyen: Moderatör:
Çözüm
Tüm işi tek bir script üzerinden yapmaktansa ayrı ayrı scriptlere ayır. Zaten değişken global ise diğer scriptlerden de ona erişebiliyorsun.

Bu arada yavaştan bir Javascript framework'üne geçseniz daha iyi olur. Yoksa bunun gibi işler için çok uğraşırsın.
Bir sayfada oluşturduğun bir scope'u bu şekilde diğer sayfaya aktaramazsın. Çünkü javascript döküman üzerinde çalışan bir kod. sproduct açıldığında artık yeni bir dom yaratılıyor.

Ya aynı sayfada kalacaksın , ya da adres satırından veriyi sproduct.html e yollayacaksın.

sproduct.html?id=1 gibi. Sonrasında adresi satırından ilgili ürün id 'yi alarak sayfanı oluşturabilirsin.
 

Çok sağ olun hocam şimdilik localStorage ile yaptım. Çok güvenilir gelmedi ama olsun. İnşallah çakışma vb sorunlar olmaz.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…