Lỗi JS Magento 2


11

Tôi đã cố gắng hoàn thành một cái gì đó và xuất bản nó trực tuyến trong suốt cuối tuần này, đó là một số bị hỏng và tôi không biết tại sao vì vậy tôi hy vọng ai đó có thể giúp tôi.

Tôi đã thử thêm jQuery tùy chỉnh vào chủ đề tùy chỉnh của mình, với thành công khi jQuery được tải và chức năng đang hoạt động. Tuy nhiên! Nó không hoạt động đúng. Ví dụ: Safari sẽ không tải jQuery và tôi liên tục gặp các lỗi này trong bảng điều khiển của mình:

defaultCaptcha.js: 29 Uncaught TypeError: Không thể đọc thuộc tính 'captcha' của xác thực không xác định-popup.js: 26 Uncaught TypeError: Không thể đọc thuộc tính 'autocomplete' của không xác định (hàm ẩn danh)

Tôi nghĩ rằng nó có liên quan đến cách tôi khai báo jQuery, nhưng khi đó dường như không phải là trường hợp tôi đã quyết định loại bỏ tất cả các JS tùy chỉnh của mình và tôi vẫn gặp phải các lỗi này. Một cái gì đó dường như bị phá vỡ hơn nữa tôi đoán.

Tùy chỉnh 'Chủ đề' của tôi chỉ là một trang đích đơn giản, không có gì nhiều hơn hộp đăng ký tùy chỉnh của tôi.

Điều gì có thể gây ra những lỗi này ??


3
Đối với nhân viên Google trong tương lai, đây là sự cố đã biết và được theo dõi trong GitHub github.com/magento/magento2/issues/8532
tim.baker

Câu trả lời:


15

Thay thế mô-đun khách hàng trong tệp xác thực-popup.js:

autocomplete: window.checkout.autocomplete

với:

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

Sau khi cập nhật chạy

Thiết lập php bin / magento: static-content: triển khai


Cập nhật

Sự cố có thể được khắc phục trong các phiên bản mới hơn: 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,

đã được thay thế bằng:

autocomplete: window.authenticationPopup.autocomplete,

Bản cập nhật này là thông tin và không cung cấp giải pháp hoàn chỉnh vì các phiên bản Magento 2 mới hơn đi kèm với các thay đổi khác.

Đây là cam kết đã thay đổi thành thế này: https://github.com/magento/magento2/commit/362f62f3c9b6c2994070615d82efbdf19f15fe50


Chúng tôi đã thử giải pháp này và vẫn thấy lỗi hiện tại, ngay cả sau khi chạy cài đặt: nâng cấp, di: biên dịch, nội dung tĩnh: triển khai, bộ đệm: sạch và bộ đệm: lệnh tuôn ra. Bất cứ một đề nghị nào khác?
codestr

Nó sẽ biến mất. Xem sự thay đổi có trong trình duyệt trong tệp xác thực-popup.js (sự cố bộ đệm của trình duyệt). Đồng thời xem tệp này không bị ghi đè bởi tệp khác từ tiện ích mở rộng, chính xác hơn để xem lỗi có đến từ tệp JS được chỉ định hay tệp khác không.
che khuất

Dấu vết ngăn xếp quay lại tệp xác thực-popup.js và không có bất kỳ tiện ích mở rộng / mô-đun nào ghi đè lên nó mà tôi có thể tìm thấy. Tôi cũng nghĩ có lẽ đó là một vấn đề về bộ nhớ cache, nhưng cũng không có may mắn ở đó. Tôi chắc chắn đó có thể là một cái gì đó đơn giản mà tôi đang xem, cuối cùng tôi sẽ hiểu ra lol.
codestr

Tôi đã thử giải pháp này, lỗi đã biến mất nhưng nói chung tôi không biết cách khắc phục, tôi có để lại cho nhà cung cấp không (với nhận xét cần làm) cho đến khi cập nhật phiên bản magento tiếp theo của chúng tôi? có ai có đề cử gì không ?
medmek

1
@medmek Bạn có thể tạo một bản vá git / diff dưới dạng sửa chữa trên các tệp cốt lõi. Doanh nghiệp Magento sử dụng nó ở đây: devdocs.magento.com/guides/v2.2/cloud/project/ mẹo
tối nghĩa

1

Sau khi ghi đè tệp từ lõi, bạn phải xóa bộ đệm ẩn tệp tĩnh (ngay cả khi tất cả bộ đệm được tắt cho chế độ mặc định) để xem hiệu ứng. Không bao giờ chỉnh sửa các tệp pub / static / frontend vì chúng là các tệp được tạo.


0

Có vẻ như lỗi gây ra bởi tham chiếu đến tự động hoàn thành và captcha không tồn tại khi chúng được yêu cầu. Làm những gì tối nghĩa đã loại bỏ lỗi cho tự động hoàn thành. Tôi đã phải chỉnh sửa tệp captcha mặc định trên ... / pub / static / frontend / Magento / luma / en_US / Magento_Captcha / js / view / checkout / defaultCaptcha.js

để trả về null nếu cấu hình nó cố gắng tham chiếu đến không tồn tại. Tuy nhiên, điều đó chỉ loại bỏ lỗi, nhưng trang thanh toán vẫn trống.

Tôi nghi ngờ nó có thể phải làm với chủ đề không trở lại đúng cách.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.