2012-12-14 22 views
7

Kịch bản sau: Khi chọn văn bản trên iOS Safari (cho phép giả sử trang html "bình thường"), lớp phủ màu xanh xuất hiện, cho biết bạn đã chọn một đoạn cụ thể. Hơn nữa, bạn có thể thay đổi lựa chọn đó, để sửa vùng chọn ban đầu của bạn. Tôi quan tâm đến việc nắm bắt chính xác sự kiện đó, khi thay đổi khu vực lựa chọn được thực hiện. Có thể (khi có, làm thế nào?) Để bắt một sự kiện như vậy trong Javascript? Thx trước.Làm thế nào để nắm bắt sự kiện iOS Safari về thay đổi lựa chọn văn bản trong Javascript?

Trả lời

13

Mobile Safari hỗ trợ sự kiện selectionchange, mà cháy trên Document nút:

document.addEventListener("selectionchange", function() { 
    alert("Selection changed!"); 
}, false); 
+0

Cảm ơn bạn. selectionchange đã làm các trick! Thật không may, nó không mang bất kỳ thông tin nào về bản thân lựa chọn, đúng không? Ví dụ: khi kiểm tra sự kiện chạm, tôi có thể tìm thấy thông tin hữu ích về tọa độ x/y hoặc phạm vi lựa chọn. – Marco

+3

@Marco: Lựa chọn có thể truy cập thông qua 'window.getSelection()' và được cập nhật vào lúc 'selectionchange' kích hoạt. –

3

tôi đã tìm thấy rằng sự kiện này bắn nhiều lần ngay cả trên một vùng chọn từ duy nhất (với một vòi nước), và tất nhiên nó sẽ kích hoạt khi bạn kéo các lựa chọn xử lý ...

Tôi đã tạo một giải pháp nhỏ để chỉ nhận được sự kiện kết thúc lựa chọn văn bản.

bạn có thể nhìn thấy nó đây: End of text selection event?

hoặc trong một bài nhỏ trên blog của tôi : http://www.dimshik.com/end-of-text-selection-event-on-ios-workaround/

Các vấn đề liên quan