Uncaught TypeError: Cannot read property msie of undefined khi cập nhật WordPress 5.5

Uncaught TypeError: Cannot read property msie of undefined khi cập nhật WordPress 5.5

26/06/2021

Gần đây khi nâng cấp một trang web WordPress cũ lên version 5.5, tôi nhận thấy có một lỗi javascript trong bảng console trên trình duyệt Chrome như sau: Uncaught TypeError: Cannot read property ‘msie’ of undefined.

Tôi  đang sử dụng phiên bản mới nhất của các thư viện jQuery và nó vẫn gặp lỗi, tôi đã kiểm tra javascript của trang web và nó vẫn ở đó.

bug property msie of undefined

Nguyên nhân lỗi

Sau khi tìm hiểu, tôi đã biết được lý do gây ra lỗi: Uncaught TypeError: Cannot read property ‘msie’ of undefined. 

Nhưng bạn có biết bản cập nhật WordPress 5.5 là phiên bản ngoài mong đợi hay không? Tuy vậy cũng không tránh khỏi các phần lỗi không mong muốn đối với cái wordpress plugin và themes.

Vấn đề lớn nhất trong đợt tối ưu version wordpress lần này là xóa jQuery Migrate 1.x. Và đó là nguyên  nhân khiến một số trang web bị lỗi.

Theo trang WordPress cũng đã nói về Jquery Migrate Helper:

Với phiên bản WordPress 5.5 đợt này, phần jquery-migrate sẽ được tắt mặc định.
Điều này có thể dẫn đến các lỗ không mong muốn trong một số them hoặc plugin chạy mã cũ hơn.

Mặc khác, trong phiên bản mới của jQuery 1.9, phần jQuery.browser() đã được loại bỏ từ phiên bản này. Hình dưới đây là phần thông báo của thư viện này.

bỏ browser trong jQuery 1.9

Cách khắc phục lỗi: Cannot read property ‘msie’ of undefined. 

1 lỗi nhỏ nhưng đã chỉ trong vòng 1 khoảng thời gian ngắn, nó đã ảnh hưởng tới hơn 2,000 Plugins và 350 Themes. Nhưng những phần xung đột (conflict) đó cũng đã nhanh chóng có cách giải quyết. Sau đây có 2 cách:

Tải Plugin: Enable jQuery Migrate Helper

wordpress jquery migrate

Hãy tải plugin này để giúp bạn khôi phục lại phần jquery trước đó, như vậy mọi thứ sẽ được giải quyết. Hãy nhớ là rằng nên cập nhật thêm các plugins.

Cách thủ công bằng code

Dưới đây là đoạn mã giúp bạn khắc phục lỗi trên. Hãy chèn đoạn mã Javascript này vào phần Header thông qua các plugin có sẵn như: Header and Footer Scripts

<script>
jQuery.browser = {};
(function () {
    jQuery.browser.msie = false;
    jQuery.browser.version = 0;
    if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
        jQuery.browser.msie = true;
        jQuery.browser.version = RegExp.$1;
    }
})();
</script>

Hy vọng bài viết này sẽ giúp bạn sửa được phần lỗi: Uncaught TypeError: Cannot read property ‘msie’ of undefined

Article Categories:
Web Development

Comments are closed.