JS hataları Magento 2


11

Bu hafta sonu bir şeyler bitirmeye ve çevrimiçi yayınlamaya çalışıyorum, bazıları ne kadar kırıldı ve neden hiçbir fikrim yok, bu yüzden umarım birisi bana yardımcı olabilir.

Birlikte, benim özel tema içine özel jQuery'i ekleyerek denedim başarı jQuery yüklendi olarak ve işlev çalışıyordu. Ancak! Düzgün çalışmıyor. Örneğin Safari jQuery'yi yüklemedi ve konsolumda şu hataları almaya devam ettim:

defaultCaptcha.js: 29 Yakalanmamış TypeError: undefined authentication-popup.js 'captcha' özelliği okunamıyor: 26 Uncaught TypeError: undefined 'anonim fonksiyonu' özelliği 'autocomplete' okunamıyor

Benim jQuery ilan yolu ile ilgili bir şey olduğunu düşündüm, ama durum böyle görünmediğinde tüm özel JS kaldırmaya karar verdim ve hala bu hataları aldım. Sanırım bir şey daha da kırılmış gibi görünüyor.

Özel 'Temam', yalnızca özel abonelik kutusundan başka bir şeyi olmayan basit bir açılış sayfasıdır.

Bu hatalara ne sebep olabilir?


3
Gelecekteki Google çalışanları için bu bilinen bir sorundur ve GitHub'da takip edilmektedir github.com/magento/magento2/issues/8532
tim.baker

Yanıtlar:


15

Authentication-popup.js dosyasındaki müşteri modülünde değiştirin:

autocomplete: window.checkout.autocomplete

ile:

autocomplete: ((window.checkout && window.checkout.autocomplete) ? window.checkout.autocomplete : null),

Güncellendikten sonra çalıştır

php bin / magento kurulumu: statik içerik: dağıtma


Güncelleme

Sorun daha yeni sürümlerde giderilebilir: https://github.com/magento/magento2/blob/2.3-develop/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js # L23

autocomplete: window.checkout.autocomplete,

ile değiştirildi:

autocomplete: window.authenticationPopup.autocomplete,

Bu güncelleştirme bilgilendiricidir ve daha yeni Magento 2 sürümleri başka değişikliklerle birlikte geldiğinden tam bir çözüm sağlamaz.

Buna dönüşen taahhüt: https://github.com/magento/magento2/commit/362f62f3c9b6c2994070615d82efbdf19f15fe50


Bu çözümü denedik ve kurulumu çalıştırdıktan sonra bile hatayı görüyoruz: yükseltme, di: derleme, statik içerik: dağıtma, önbellek: temizle ve önbellek: flush komutları. Başka öneriniz var mı?
codestr

Gitmeli. Değişikliğin tarayıcıda kimlik doğrulaması-popup.js dosyasında (tarayıcı önbelleği sorunu) olup olmadığına bakın. Ayrıca, bu dosyanın bir uzantıdaki başka bir dosya tarafından üzerine yazılmadığına bakın, hatanın belirtilen JS dosyasından mı yoksa başka bir dosyadan mı geldiğini tam olarak görün.
gizleyebilir

Yığın izlemesi, authentication-popup.js dosyasını işaret eder ve bulabileceğim herhangi bir uzantı / modül yoktur. Ben de belki bir önbellek sorunu olduğunu düşündüm, ama orada da şans yoktu. Eminim o muhtemelen ben bakan basit bir şey, sonunda lol anlayacağım.
codestr

Bu çözümü denedim, hata gitti ama genel olarak nasıl yama yapacağımı bilmiyorum, sonraki magento sürüm güncellemesine kadar satıcıda (todo yorumu ile) bırakıyor muyum? herhangi birinin tavsiyesi var mı?
medmek

1
@medmek Çekirdek dosyalarda düzeltme olarak bir git / diff yaması oluşturabilirsiniz. Magento Enterprise burada kullanıyor: devdocs.magento.com/guides/v2.2/cloud/project/…
belirsiz

1

Çekirdek dosyaları geçersiz kılma işleminden sonra, efekti görmek için statik dosya önbelleğini (varsayılan mod için tüm önbellekler devre dışı olsa bile) temizlemeniz gerekir. Asla pub / static / frontend dosyalarını düzenlemeyin çünkü dosyalar üretilir.


0

Görünüşe göre hata otomatik tamamlama referansından kaynaklanıyor ve gerekli olduğunda captcha yok. Belirsiz olanı yapmak, otomatik tamamlama hatasını ortadan kaldırdı. Varsayılan captcha dosyasını ... / pub / static / frontend / Magento / luma / en_US / Magento_Captcha / js / view / checkout / defaultCaptcha.js üzerinde düzenlemek zorunda kaldım

başvurmaya çalıştığı yapılandırma yoksa null değerini döndürür. Ancak, bu yalnızca hatayı kaldırır, ancak ödeme sayfası hala boştur.

Temanın düzgün geri düşmemesi ile ilgili olabileceğinden şüpheleniyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.