JS ข้อผิดพลาดวีโอไอพี 2


11

ฉันพยายามทำบางสิ่งบางอย่างจนเสร็จสิ้นและเผยแพร่ทางออนไลน์ในช่วงสุดสัปดาห์นี้ว่ามันพังทลายและฉันก็ไม่รู้ว่าทำไมฉันจึงหวังว่าจะมีคนช่วยฉันได้

ฉันได้ลองเพิ่ม jQuery ที่กำหนดเองลงในธีมที่กำหนดเองของฉันด้วยความสำเร็จเมื่อโหลด jQuery และฟังก์ชันใช้งานได้ แต่! มันทำงานไม่ถูกต้อง ตัวอย่างเช่น Safari จะไม่โหลด jQuery และฉันยังได้รับข้อผิดพลาดเหล่านี้ในคอนโซล:

defaultCaptcha.js: 29 Uncaught TypeError: ไม่สามารถอ่านคุณสมบัติ 'captcha' ของการตรวจสอบสิทธิ์ที่ไม่ได้กำหนดป๊อปอัพ: 26 Uncaught TypeError: ไม่สามารถอ่านคุณสมบัติ 'เติมข้อความอัตโนมัติ' ของไม่ได้กำหนด (ฟังก์ชันที่ไม่ระบุชื่อ)

ฉันคิดว่ามันมีบางอย่างที่เกี่ยวข้องกับวิธีการที่ฉันประกาศ jQuery ของฉัน แต่เมื่อไม่เป็นเช่นนั้นฉันก็ตัดสินใจลบ JS ที่กำหนดเองทั้งหมดของฉันและฉันก็ยังได้รับข้อผิดพลาดเหล่านี้ ดูเหมือนว่าจะมีบางสิ่งที่แตกสลายมากขึ้น

'ธีม' ที่กำหนดเองของฉันเป็นเพียงหน้า Landing Page ธรรมดาที่ไม่มีอะไรมากไปกว่ากล่องกำหนดเอง

สิ่งที่อาจทำให้เกิดข้อผิดพลาดเหล่านี้ ??


3
สำหรับชาว Google ในอนาคตนี่เป็นปัญหาที่ทราบและถูกติดตามใน GitHub github.com/magento/magento2/issues/8532
tim.baker

คำตอบ:


15

แทนที่ในโมดูลลูกค้าในไฟล์ authentication-popup.js:

autocomplete: window.checkout.autocomplete

ด้วย:

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

เมื่อเรียกใช้การปรับปรุงแล้ว

การตั้งค่า php bin / magento: เนื้อหาคงที่: ปรับใช้


ปรับปรุง

ปัญหานี้อาจได้รับการแก้ไขในเวอร์ชันที่ใหม่กว่า: 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,

ถูกแทนที่ด้วย:

autocomplete: window.authenticationPopup.autocomplete,

การอัปเดตนี้เป็นข้อมูลและไม่ได้ให้โซลูชันที่สมบูรณ์เนื่องจาก Magento 2 รุ่นใหม่กว่ามาพร้อมกับการเปลี่ยนแปลงอื่น ๆ

นี่คือความมุ่งมั่นที่เปลี่ยนเป็น: https://github.com/magento/magento2/commit/362f62f3c9b6c2994070615d82efbdf19f15fe50


เราได้ลองใช้วิธีแก้ไขปัญหานี้แล้วและยังคงพบข้อผิดพลาดอยู่แม้หลังจากเรียกใช้การตั้งค่า: อัปเกรด, di: รวบรวม, เนื้อหาคงที่: ปรับใช้, แคช: สะอาดและแคช: คำสั่งล้างข้อมูล ข้อเสนอแนะอื่น ๆ ?
codestr

มันควรจะหายไป ดูว่าการเปลี่ยนแปลงอยู่ในเบราว์เซอร์ในไฟล์ authentication-popup.js (ปัญหาแคชของเบราว์เซอร์) ดูเพิ่มเติมว่าไฟล์นี้ไม่ได้ถูกเขียนทับโดยไฟล์อื่นจากนามสกุลหรือไม่ดูว่าข้อผิดพลาดนั้นมาจากไฟล์ JS ที่ระบุหรือไฟล์อื่น
ปิดบัง

การติดตามสแต็กชี้กลับไปที่ไฟล์ authentication-popup.js และไม่มีส่วนขยาย / โมดูลใด ๆ เขียนทับมันที่ฉันสามารถหาได้ ฉันก็คิดว่าบางทีมันอาจจะเป็นปัญหาแคช แต่ก็ไม่มีโชคเช่นกัน ฉันแน่ใจว่ามันอาจเป็นสิ่งที่เรียบง่ายที่ฉันมองเห็นฉันจะคิดออกในที่สุดฮ่า ๆ
codestr

ฉันลองวิธีนี้แล้วข้อผิดพลาดก็หายไป แต่ฉันไม่รู้วิธีการแก้ไขโดยทั่วไปฉันจะทิ้งไว้ในผู้ขาย (พร้อมความคิดเห็นด้วยสิ่งที่ต้องทำ) จนถึงการอัพเดตเวอร์ชั่นวีโอไอพีต่อไปของเราหรือไม่ ไม่มีใครมีข้อเสนอแนะ?
medmek

1
@medmek คุณสามารถสร้างโปรแกรมแก้ไข git / diff เป็นโปรแกรมแก้ไขในไฟล์หลักได้ องค์กรวีโอไอพีใช้ที่นี่: devdocs.magento.com/guides/v2.2/cloud/project/…
ปิดบัง

1

หลังจากแทนที่ไฟล์จากคอร์คุณต้องล้างแคชไฟล์สแตติก (แม้ว่าแคชทั้งหมดจะถูกปิดการใช้งานสำหรับโหมดเริ่มต้น) เพื่อดูผลกระทบ ห้ามแก้ไขไฟล์ pub / static / frontend เพราะเป็นไฟล์ที่สร้างขึ้น


0

ดูเหมือนว่าข้อผิดพลาดเกิดจากการอ้างอิงถึงการเติมข้อความอัตโนมัติและ captcha ไม่มีอยู่เมื่อควรจะเป็น การทำสิ่งที่คลุมเครือทำให้เกิดข้อผิดพลาดในการเติมข้อความอัตโนมัติ ฉันต้องแก้ไขไฟล์ captcha เริ่มต้นใน ... / pub / static / frontend / Magento / luma / en_US / Magento_Captcha / js / ดู / checkout / defaultCaptcha.js

เพื่อคืนค่า null หากการกำหนดค่าที่พยายามอ้างอิงถึงไม่มีอยู่ อย่างไรก็ตามนั่นเป็นเพียงการลบข้อผิดพลาด แต่หน้าเช็คเอาต์ยังคงว่างเปล่า

ฉันสงสัยว่าอาจเกี่ยวข้องกับชุดรูปแบบที่ไม่ถอยกลับอย่างถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.