Tôi có một div có thể chỉnh sửa nội dung đơn giản với một số văn bản trong đó. Trên sự kiện onkeyup tôi muốn thay thế toàn bộ nội dung (innerHTML) của div dựa trên regex.Thay đổi vị trí con trỏ trong div có thể chỉnh sửa được sau khi thay đổi innerHTML
Ví dụ,
HTML:
some text, more text and $even more text
Chức năng, trong đó tôi có kế hoạch để có được tất cả các văn bản với $ ($ ngay cả trong ví dụ trên) và bọc nó trong thẻ div:
div.onkeypress = function() {
div.innerHTML.replace(/(some_regexp)/, "<span class='class'>$1</span>");
};
Vấn đề là sau khi con trỏ thay thế đó nhảy vào đầu div. Tôi muốn nó ở lại nơi trước đây.
Tôi tưởng tượng tôi phải lưu tọa độ của con trỏ trước khi thay đổi và sau đó bằng cách nào đó bằng cách sử dụng chúng đặt con trỏ trở lại nhưng làm cách nào tôi có thể làm điều đó? :)
Tôi đã thử lưu đối tượng phạm vi nhưng sau khi chỉnh sửa tôi tin rằng nó trỏ đến hư không.
Cảm ơn!
Gì HTML thay thế như thế nào? –
Tôi đã cập nhật câu hỏi gốc. nếu bạn biết làm thế nào để có được hành vi mong đợi bởi một số phương tiện khác mà không thay đổi toàn bộ innerHTML - sẽ là tuyệt vời để nghe. –
Tôi biết đó là một câu hỏi cũ, nhưng bạn đã tìm cách giải quyết vấn đề này chưa? Tôi đang có nhu cầu chính xác tương tự –