Tôi đang sử dụng div có thể chỉnh sửa được kết hợp với thư viện Javascript rangy để chèn HTML ở vị trí con trỏ.div có thể chỉnh sửa được: IE8 không hài lòng với việc xóa bỏ phần tử HTML
End trong ngày các nội dung của div thường trông giống như:
<div contenteditable="true">
"Hello "
<button contenteditable="false" data-id="147">@John Smith</button>
" "
</div>
Người dùng được đề nghị khi nhấn '@' và nhận được sau đó chèn như một nút khi được chọn (ala Google Plus). Tôi cũng chèn một
sau nút này.
Nút bị xóa trong Chrome/Safari/Firefox khi bạn nhấn backspace (sau lần đầu tiên xóa
), nhưng không phải trong IE8. Trong IE8 con trỏ chỉ đơn thuần nhảy qua nút mà không xóa nó. Điều gì thậm chí còn kỳ lạ hơn trong IE8 là nếu bạn rời khỏi
bên cạnh nút - và thay vì đặt con trỏ ngay bên cạnh nút - nó sẽ xóa nút trên backspace. Vì vậy, nó hạnh phúc khi có một
ở bên phải của con trỏ.
Có ai biết những gì tôi cần để làm cho IE8 hoạt động i.t.o. xóa nút khi lùi lại mà không cần
ở bên phải con trỏ? (một số thông tin về hành vi kỳ lạ này cũng có thể hữu ích)
P.S. Tôi đã không kiểm tra các phiên bản khác của IE
tại sao bạn có contenteditable = false vào nút? – MorganTiley
Vì vậy, nó xóa nó khỏi DOM (trong một lần) khi bạn nhấn backspace hoặc khi bạn nhấn xóa (điều này hiện đang làm việc trong Chrome/Safari/Firefox). Nếu contenteditable = true thì văn bản của nút có thể chỉnh sửa được, đó không phải là trường hợp sử dụng của tôi. –
Tôi không biết điều đó. (Tôi havent làm việc với đầu vào trong contEd trước). Điều gì về việc xử lý keyspace backspace và kiểm tra previoussibling của nút đầu tiên trong phạm vi lựa chọn? – MorganTiley