cuốn sách gpt4 ai đã làm

android — Canvas biến mất

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 14:01:35 27 4
mua khóa gpt4 Nike

Tôi đã viết một đoạn script đơn giản bằng JS. Khi tôi đặt nó vào tài liệu html (ở cuối thẻ body), nó hoạt động tốt. Khi tôi cố gắng đặt nó vào một tài liệu bên ngoài và liên kết nó, tập lệnh sẽ chạy nhưng phần tử canvas biến mất (chỉ cần kiểm tra: nó hoạt động khi tôi đặt tập lệnh ở dưới cùng thay vì thẻ đầu). Phiên bản này hoạt động:

			var c = document.getElementById("canvasId");
var ctx = c.getContext("2d");
var text = "Nazwa pomiaru";
var boxWidth = 200;
var boxHeight = 200;
var minValue = 0;
var maxValue = 100;
var midValue = (Math.abs(minValue) + Math.abs(maxValue))/2;
đơn vị var = "%";
var indicWidth = 50;
var indicHeight = 0,6 * boxHeight;
var textPosition = 0,875;
var leftMargin = 0,375;
var topMargin = 0,15;
var BottomMargin = 0,75;
giá trị var = Math.floor(Math.random() * 101);
var cảnh báoTop = 90;
var nguy hiểmTop = 95;
var cảnh báoBottom = 10;
var nguy hiểmBottom = 5;
var ngưỡngTransparency = 0,6;
var đột quỵColor = "#CCCCCC";
var valueColor = "#993333";
var WarningColor = "#ff6600";
var nguy hiểmColor = "#cc0000";
var textColor = "#000000";
var textColor2 = "#ffffff";
ctx.beginPath();
ctx.fillText((maxValue + unit), (leftMargin * boxWidth - ctx.measureText(maxValue + unit).width-1), (topMargin * boxHeight + 3), (boxWidth / 4));
ctx.fillText((midValue + unit), (leftMargin * boxWidth - ctx.measureText(midValue + unit).width-1), ((topMargin + BottomMargin) / 2 * boxHeight + 3), (boxWidth / 4)); //vẽ một giá trị trung bình
ctx.fillText((minValue + unit), (leftMargin * boxWidth - ctx.measureText(minValue + unit).width-1), (bottomMargin * boxHeight + 3), (boxWidth / 4));
ctx.fillText(text, ((boxWidth - ctx.measureText(text).width) / 2), (textPosition * boxHeight), (textPosition * boxWidth));
ctx.lineWidth = "0";
ctx.globalAlpha = ngưỡngTransparency;
if (cảnh báoTop !== 0 || cảnh báoBottom !== 0) {
ctx.fillStyle = WarningColor;
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight), indicWidth, ((100 - WarningTop) * (indicHeight / 100)));
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight + (100 - WarningBottom) * (indicHeight / 100)), indicWidth, (indicHeight - (100 - WarningBottom) * (indicHeight / 100))); một cảnh báoDưới
}
if (dangerTop !== 0 || nguy hiểmBottom !== 0) {
ctx.fillStyle = DangerousColor;
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight), indicWidth, ((100 - DangerousTop) * (indicHeight / 100)));
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight + (100 - DangerousBottom) * (indicHeight / 100)), indicWidth, (indicHeight - (100 - DangerousBottom) * (indicHeight / 100))); một mối nguy hiểm
}
ctx.beginPath();
ctx.globalAlpha = 1;
ctx.fillStyle = valueColor;
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight + (100 - value) * (indicHeight / 100)), indicWidth, (indicHeight - (100 - value) * (indicHeight / 100))); một giá trịChỉ báo
nếu (giá trị <= 47) {
ctx.fillStyle=textColor;
}
khác {
ctx.fillStyle = textColor2;
}
ctx.fillText(value, ((boxWidth - ctx.measureText(value).width) / 2), (boxHeight / 2));
ctx.shadowBlur = 6;
ctx.shadowColor = "#000000";
ctx.lineWidth="2";
ctx.StrokeStyle = StrokeColor;
ctx. StrokeRect((leftMargin * boxWidth), (topMargin * boxHeight), indicWidth, indicHeight);
ctx.shadowBlur = 0;
document.write(value);


<đầu>
Thanh trượt



Không có hỗ trợ.


Xem sitemap của VNExpress

Phiên bản này không hoạt động:

hàm vẽ () {
var c = document.getElementById("canvasId");
var ctx = c.getContext("2d");
var text = "Nazwa pomiaru";
var boxWidth = 200;
var boxHeight = 200;
var minValue = 0;
var maxValue = 100;
var midValue = (Math.abs(minValue) + Math.abs(maxValue))/2;
đơn vị var = "%";
var indicWidth = 50;
var indicHeight = 0,6 * boxHeight;
var textPosition = 0,875;
var leftMargin = 0,375;
var topMargin = 0,15;
var BottomMargin = 0,75;
giá trị var = Math.floor(Math.random() * 101);
var cảnh báoTop = 90;
var nguy hiểmTop = 95;
var cảnh báoBottom = 10;
var nguy hiểmBottom = 5;
var ngưỡngTransparency = 0,6;
var đột quỵColor = "#CCCCCC";
var valueColor = "#993333";
var WarningColor = "#ff6600";
var nguy hiểmColor = "#cc0000";
var textColor = "#000000";
var textColor2 = "#ffffff";
ctx.beginPath();
ctx.fillText((maxValue + unit), (leftMargin * boxWidth - ctx.measureText(maxValue + unit).width-1), (topMargin * boxHeight + 3), (boxWidth / 4));
ctx.fillText((midValue + unit), (leftMargin * boxWidth - ctx.measureText(midValue + unit).width-1), ((topMargin + BottomMargin) / 2 * boxHeight + 3), (boxWidth / 4)); //vẽ một giá trị trung bình
ctx.fillText((minValue + unit), (leftMargin * boxWidth - ctx.measureText(minValue + unit).width-1), (bottomMargin * boxHeight + 3), (boxWidth / 4));
ctx.fillText(text, ((boxWidth - ctx.measureText(text).width) / 2), (textPosition * boxHeight), (textPosition * boxWidth));
ctx.lineWidth = "0";
ctx.globalAlpha = ngưỡngTransparency;
if (cảnh báoTop !== 0 || cảnh báoBottom !== 0) {
ctx.fillStyle = WarningColor;
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight), indicWidth, ((100 - WarningTop) * (indicHeight / 100)));
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight + (100 - WarningBottom) * (indicHeight / 100)), indicWidth, (indicHeight - (100 - WarningBottom) * (indicHeight / 100))); một cảnh báoDưới
}
if (dangerTop !== 0 || nguy hiểmBottom !== 0) {
ctx.fillStyle = DangerousColor;
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight), indicWidth, ((100 - DangerousTop) * (indicHeight / 100)));
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight + (100 - DangerousBottom) * (indicHeight / 100)), indicWidth, (indicHeight - (100 - DangerousBottom) * (indicHeight / 100))); một mối nguy hiểm
}
ctx.beginPath();
ctx.globalAlpha = 1;
ctx.fillStyle = valueColor;
ctx.fillRect((leftMargin * boxWidth), (topMargin * boxHeight + (100 - value) * (indicHeight / 100)), indicWidth, (indicHeight - (100 - value) * (indicHeight / 100))); một giá trịChỉ báo
nếu (giá trị <= 47) {
ctx.fillStyle=textColor;
}
khác {
ctx.fillStyle = textColor2;
}
ctx.fillText(value, ((boxWidth - ctx.measureText(value).width) / 2), (boxHeight / 2));
ctx.shadowBlur = 6;
ctx.shadowColor = "#000000";
ctx.lineWidth="2";
ctx.StrokeStyle = StrokeColor;
ctx. StrokeRect((leftMargin * boxWidth), (topMargin * boxHeight), indicWidth, indicHeight);
ctx.shadowBlur = 0;
document.write(value);
};

window.onload = vẽ;


<đầu>
Thanh trượt



Không có hỗ trợ.



Phiên bản thứ hai bằng cách nào đó ẩn nhãn Canvas nhưng hiển thị văn bản (để tập lệnh hoạt động).

Có giải pháp nào không?

câu trả lời hay nhất

Lý do Canvas (và do đó toàn bộ tài liệu) biến mất là do bạn đang sử dụng tài liệu.write. Trong đoạn trích đầu tiên, bạn là đóng luồng Đã có tài liệu trước đây. Đối với đoạn thứ hai, bạn chỉ cần window.onLoad Mã sau đó được thực thi, tại thời điểm đó luồng tài liệu đã được đóng lại.

Lưu ý: khi document.write ghi vào luồng tài liệu, việc gọi document.write trên tài liệu đã đóng (đã tải) sẽ tự động gọi document.open để xóa tài liệu - - https://developer.mozilla.org/en-US/docs/Web/API/Document/write

Giải pháp là:

1) Không sử dụng document.write - nếu bạn cần ghi vào tài liệu, hãy đặt một phần tử HTML trên trang và ghi vào phần tử đó:

 // html:

...





// Javascript
// ...
var el = document.getDocumentById('output');
el.textContent = giá trị

2) Đừng gọi document.write sau khi trang được tải (như bạn đã làm trong đoạn mã đầu tiên)

Cá nhân tôi sẽ không bao giờ sử dụng document.write vì bạn có thể gặp phải những vấn đề như những gì bạn mô tả.

Về javascript - Canvas biến mất, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/31179511/

27 4 0
Bài viết khuyến nghị: Nói với Java Servlet "executeQuery" cứ sau 5 giây
Bài viết khuyến nghị: html - Đã xảy ra lỗi với mã CSS này
Bài viết khuyến nghị: Các yêu cầu còn lại đưa ra 400 Yêu cầu Không hợp lệ khi sử dụng Hibernate4Module trong Spring 4.0.8.RELEASE + Hibernate 4.3.7.Final + 2.3.0 com.fasterxml.jackson
Bài viết khuyến nghị: asp.net - Cuộn ASP GridView với tiêu đề cố định và đường viền trên cùng
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Các bài viết phổ biến trên toàn bộ trang web
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com