Lỗi thường gặp
Chữ hiển thị sai: Bảng dá»±ng hình#
Tài liệu thiếu khai báo mã hoá.
<meta charset="utf-8">
Header HTTP thắng thẻ meta; kiểm tra máy chủ không gửi charset khác. Tệp
.js nên phục vụ với Content-Type: text/javascript; charset=utf-8.
MathCanvas is not defined#
Mã khởi tạo chạy trước khi gói được nạp xong. Biến toàn cục MathCanvas chỉ
tồn tại sau khi thẻ <script> của gói thực thi.
MathCanvas: không tìm thấy phần tử "#board"#
Phần tử chưa tồn tại tại thời điểm gọi init.
Bảng vẽ cao bằng không#
Giá trị height được đặt nguyên văn lên khung do gói tạo ra. '100%' phân
giải theo phần tử cha; cha cao auto thì khung cao 0.
Phím tắt không hoạt động#
Mặc định keyboard: 'container': gói chỉ xử lý phím khi document.activeElement
nằm trong bảng vẽ. Nhấp vào vùng vẽ chuyển tiêu điểm vào đó. keyboard: 'window'
xử lý phím ở phạm vi tài liệu, false tắt hẳn.
setDocument không có hiệu lực#
Đầu vào không đọc được thì trạng thái giữ nguyên, không ném ngoại lệ.
if (!MathCanvas.parseDocument(data)) console.warn('Tài liệu không hợp lệ');
Nguyên nhân thường gặp: truyền cả phần bọc của API ({ data: … }) thay vì
tài liệu.
Tài liệu nạp vào bị thiếu hình#
Hình bị loại theo quy tắc làm sạch. Trường hợp
phổ biến: phiên bản gói cũ hơn dữ liệu. So sánh MathCanvas.version giữa nơi
tạo và nơi mở.
Xuất PNG thất bại với giao thức file://#
Canvas bị đánh dấu nhiễm do mỗi tệp file:// là một nguồn riêng. Phục vụ trang
qua HTTP.
Giao diện lệch, chữ giãn, nút mất viền#
Gói tự đặt lại box-sizing, margin, padding, viền và các thuộc tính chữ
kế thừa trong phạm vi .mc-app, nên CSS toàn cục của tài liệu chủ không ảnh
hưởng tới bên trong. Hai trường hợp còn lọt:
- Bộ nhớ đệm đang giữ bản gói cũ hơn — đối chiếu
MathCanvas.version. - Tài liệu chủ có luật nhắm thẳng vào tiền tố lớp
mc-. Các lớp này là chi tiết nội bộ và thay đổi giữa các phiên bản.
CSP chặn giao diện#
Thiếu style-src 'unsafe-inline' hoặc img-src data:. Xem
Cài đặt.
Thực thể vẫn hoạt động sau khi phần tử bị gỡ#
Gói không tự phát hiện phần tử rời khỏi cây DOM. Trình nghe bàn phím và
ResizeObserver chỉ được gỡ khi board.destroy() chạy.
Nhiều thực thể ghi đè bản lưu của nhau#
Các thực thể có storageKey trùng nhau cùng ghi vào một khoá localStorage;
thực thể ghi sau thắng.
Màn hình hẹp#
Bố cục thiết kế cho bề ngang từ 900px. Dưới ngưỡng đó thanh công cụ xuống hai hàng; dưới 500px bảng thuộc tính bị cắt. Chưa có bố cục cho thiết bị di động.
React của tài liệu chủ#
Không liên quan. React 19 nằm trong gói, có cây thành phần và bộ điều phối riêng, không đọc hay ghi vào React của tài liệu chủ.