HTMLDialogElement: phương thức requestClose()
Baseline
2025
Newly available
Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Phương thức requestClose() của giao diện HTMLDialogElement yêu cầu đóng <dialog>.
Có thể truyền một chuỗi tùy chọn làm đối số, cập nhật returnValue của hộp thoại.
Phương thức này khác với close() ở chỗ nó kích hoạt sự kiện cancel trước khi kích hoạt sự kiện close.
Tác giả có thể gọi Event.preventDefault() trong trình xử lý cho sự kiện cancel để ngăn hộp thoại đóng.
Phương thức này phơi bày cùng hành vi với trình theo dõi đóng nội bộ của hộp thoại.
Cú pháp
requestClose()
requestClose(returnValue)
Tham số
returnValueOptional-
Một chuỗi đại diện cho giá trị cập nhật cho
HTMLDialogElement.returnValuecủa hộp thoại.
Giá trị trả về
Không có (undefined).
Ví dụ
>Sử dụng requestClose()
Ví dụ sau đây hiển thị một nút bấm, khi được nhấp vào, sẽ mở một <dialog> bằng phương thức showModal().
Từ đó bạn có thể nhấp vào nút Đóng để gọi phương thức requestClose() và đóng hộp thoại.
Nút Đóng đóng hộp thoại mà không có returnValue, trong khi nút Đóng kèm giá trị trả về đóng hộp thoại với một returnValue.
Việc ngăn hộp thoại đóng được minh họa bằng một hộp kiểm.
HTML
<dialog id="dialog">
<div>
<label><input type="checkbox" id="prevent-close" /> Hủy đóng</label>
</div>
<button type="button" id="close">Đóng</button>
<button type="button" id="close-w-value">Đóng kèm giá trị trả về</button>
</dialog>
<button id="open">Mở hộp thoại</button>
const dialog = document.getElementById("dialog");
const openButton = document.getElementById("open");
const closeButton = document.getElementById("close");
const closeWithValueButton = document.getElementById("close-w-value");
const preventCloseInput = document.getElementById("prevent-close");
// Nút mở mở một hộp thoại modal
openButton.addEventListener("click", () => {
// Đặt lại giá trị trả về
dialog.returnValue = "";
// Hiển thị hộp thoại
dialog.showModal();
});
// Nút đóng đóng hộp thoại
closeButton.addEventListener("click", () => {
dialog.requestClose();
});
// Nút đóng đóng hộp thoại với giá trị trả về
closeWithValueButton.addEventListener("click", () => {
dialog.requestClose("some value");
});
// Được kích hoạt khi requestClose() được gọi
// Ngăn hộp thoại đóng bằng cách gọi event.preventDefault()
dialog.addEventListener("cancel", (event) => {
if (preventCloseInput.checked) {
log("Đã hủy đóng hộp thoại");
event.preventDefault();
}
});
// Sự kiện cancel không bị ngăn, hộp thoại sẽ đóng
dialog.addEventListener("close", () => {
log(`Hộp thoại đã đóng. Giá trị trả về: "${dialog.returnValue}"`);
});
Kết quả
Đặc tả kỹ thuật
| Specification |
|---|
| HTML> # dom-dialog-requestclose> |