Sự kiện Sử dụng tên sự kiện trong các phương thức như error
được kích hoạt trên đối tượng Window
khi tài nguyên không tải hoặc không thể được sử dụng - ví dụ nếu tập lệnh có lỗi thực thi.Cú pháp
addEventListener[]
hoặc đặt thuộc tính Trình xử lý sự kiện.addEventListener["error", [event] => {}];
onerror = [event, source, lineno, colno, error] => {};
Lưu ý: Vì lý do lịch sử, onerror
trên window
là tài sản xử lý sự kiện duy nhất nhận được nhiều hơn một đối số. Due to historical reasons, onerror
on window
is the only event handler property that receives more than one argument.
Loại sự kiện
Đối tượng sự kiện là một thể hiện UIEvent
nếu nó được tạo từ phần tử giao diện người dùng hoặc một phiên bản ____10 khác.
Ghi chú sử dụng
Không giống như các sự kiện khác, sự kiện error
bị hủy bằng cách trả lại
Generate script error
Event log:
2 từ trình xử lý thay vì trả lại
Generate script error
Event log:
3. Khi bị hủy, lỗi sẽ không xuất hiện trong bảng điều khiển, nhưng tập lệnh hiện tại vẫn sẽ ngừng thực thi.Chữ ký của người xử lý sự kiện không đối xứng giữa addEventListener[]
và onerror
. Trình xử lý sự kiện được chuyển đến
Generate script error
Event log:
6 nhận được một đối tượng
Generate script error
Event log:
7 duy nhất, trong khi trình xử lý onerror
nhận được năm đối số, khớp với các thuộc tính của đối tượng
Generate script error
Event log:
7:body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
0Một chuỗi chứa thông báo lỗi có thể đọc được của con người mô tả vấn đề. Giống như
body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
1.body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
2Một chuỗi chứa URL của tập lệnh tạo ra lỗi.
body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
3Một số nguyên chứa số dòng của tệp tập lệnh mà lỗi xảy ra.
body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
4Một số nguyên chứa số cột của tệp tập lệnh mà lỗi xảy ra.
error
Lỗi bị ném. Thường là một đối tượng
body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
6.
Lưu ý: Các tên tham số này có thể quan sát được với thuộc tính Trình xử lý sự kiện HTML, trong đó tham số đầu tiên được gọi là
0 thay vì body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
8. These parameter names are observable with an HTML event handler attribute, where the first parameter is called body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
0 instead of body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
8.Hành vi đặc biệt này chỉ xảy ra đối với trình xử lý sự kiện onerror
trên window
. Trình xử lý
const log = document.querySelector[".event-log-contents"];
window.addEventListener["error", [event] => {
log.textContent = `${log.textContent}${event.type}: ${event.message}\n`;
console.log[event];
}];
const scriptError = document.querySelector["#script-error"];
scriptError.addEventListener["click", [] => {
const badCode = "const s;";
eval[badCode];
}];
1 vẫn nhận được một đối tượng
Generate script error
Event log:
7 duy nhất.Ví dụ
Ví dụ trực tiếp
HTML
Generate script error
Event log:
body {
display: grid;
grid-template-areas: "control log";
}
.controls {
grid-area: control;
display: flex;
align-items: center;
justify-content: center;
}
.event-log {
grid-area: log;
}
.event-log-contents {
resize: none;
}
label,
button {
display: block;
}
button {
height: 2rem;
margin: 0.5rem;
}
img {
width: 0;
height: 0;
}
JavaScript
const log = document.querySelector[".event-log-contents"];
window.addEventListener["error", [event] => {
log.textContent = `${log.textContent}${event.type}: ${event.message}\n`;
console.log[event];
}];
const scriptError = document.querySelector["#script-error"];
scriptError.addEventListener["click", [] => {
const badCode = "const s;";
eval[badCode];
}];
Kết quả
Thông số kỹ thuật
HTML Standard # Event-error # event-error |
HTML Standard # Handler-Onerror # handler-onerror |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt
Xem thêm
- Sự kiện này trên
3 Mục tiêu:const log = document.querySelector[".event-log-contents"]; window.addEventListener["error", [event] => { log.textContent = `${log.textContent}${event.type}: ${event.message}\n`; console.log[event]; }]; const scriptError = document.querySelector["#script-error"]; scriptError.addEventListener["click", [] => { const badCode = "const s;"; eval[badCode]; }];
error
Sự kiện