InputEvent: phương thức getTargetRanges()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2021.

Phương thức getTargetRanges() của giao diện InputEvent trả về một mảng các đối tượng StaticRange sẽ bị ảnh hưởng bởi một thay đổi đối với DOM nếu sự kiện đầu vào không bị hủy.

Điều này cho phép các ứng dụng web ghi đè hành vi chỉnh sửa văn bản trước khi trình duyệt sửa đổi cây DOM, và cung cấp khả năng kiểm soát nhiều hơn đối với các sự kiện đầu vào để cải thiện hiệu suất.

Tùy thuộc vào giá trị của inputType và máy chủ chỉnh sửa hiện tại, giá trị trả về dự kiến của phương thức này thay đổi:

inputType Máy chủ chỉnh sửa Phản hồi của getTargetRanges()
"historyUndo" hoặc "historyRedo" Bất kỳ Mảng rỗng
Tất cả các loại còn lại contenteditable một mảng các đối tượng StaticRange được liên kết với sự kiện
Tất cả các loại còn lại input hoặc textarea một mảng rỗng

Cú pháp

js
getTargetRanges()

Tham số

Không có.

Giá trị trả về

Một mảng các đối tượng StaticRange.

Ví dụ

Phát hiện tính năng

Hàm sau trả về true nếu beforeinput, và do đó getTargetRanges, được hỗ trợ.

js
function isBeforeInputEventAvailable() {
  return (
    window.InputEvent &&
    typeof InputEvent.prototype.getTargetRanges === "function"
  );
}

Sử dụng cơ bản

Ví dụ sau chọn một phần tử contenteditable và sử dụng sự kiện beforeinput để ghi nhật ký kết quả của getTargetRanges().

js
const editableElem = document.querySelector('[contenteditable="true"]');

editableElem.addEventListener("beforeinput", (e) => {
  const targetRanges = e.getTargetRanges();
  console.log(targetRanges);
});

Đặc điểm kỹ thuật

Specification
Input Events Level 2
# dom-inputevent-gettargetranges

Tương thích trình duyệt