Không có cách nào qua trình duyệt phát hiện thay đổi đối với lựa chọn. IE (kể từ phiên bản 5.5, tôi nghĩ) và trình duyệt WebKit/Blink (Chrome, Safari và Opera phiên bản từ vài năm qua), hỗ trợ sự kiện selectionchange
trên document
thực hiện chính xác những gì bạn muốn.
Firefox và trước Blink Opera không có sự kiện như vậy và tất cả những gì bạn có thể làm là phát hiện các thay đổi lựa chọn được thực hiện thông qua các sự kiện bàn phím và chuột, không đạt yêu cầu (không có cách nào phát hiện "Chọn tất cả" từ ngữ cảnh hoặc menu chỉnh sửa, ví dụ) hoặc chỉ đơn giản là thăm dò đối tượng Selection
được trả lại bởi window.getSelection()
(kiểm tra các lựa chọn của anchorNode
, anchorOffset
, focusNode
và focusOffset
thuộc tính so với các giá trị trước đó của chúng là đủ).
Nguồn
2012-01-27 14:50:42
thể trùng lặp của [Làm thế nào để giám sát cửa sổ thay đổi lựa chọn sự kiện trong javascript] (http://stackoverflow.com/questions/5139623 –
không phải là bản sao vì tôi cần theo dõi sự kiện chọn cửa sổ, không phải cho đầu vào –
Thực ra tôi cho rằng đó là một bản sao, như một câu hỏi khác dường như đang hỏi điều tương tự chứ không phải là không chính xác, nhưng câu trả lời có không hữu ích. Bản sao tốt hơn là bản sao này: http://stackoverflow.com/questions/8442158/selection-change-event-in-contenteditable –