Có rất nhiều trình soạn thảo WYSIWYG có sẵn trên internet, nhưng tôi chưa tìm thấy một trình soạn thảo thực hiện một số dạng triển khai kéo-thả-thả. Thật dễ dàng để tạo trình soạn thảo của riêng mình, nhưng tôi muốn người dùng có thể kéo các phần tử (ví dụ: mã thông báo) từ bên ngoài vùng có thể chỉnh sửa và thả chúng ở vị trí mà họ chọn bên trong khu vực có thể chỉnh sửa . Nó rất dễ dàng để tiêm html tại một vị trí cụ thể của một yếu tố có thể chỉnh sửa, nhưng làm thế nào để xác định nơi caret nên được khi người dùng đang kéo một DIV trên một số yếu tố trong khu vực có thể chỉnh sửa. Để minh họa rõ hơn những gì tôi đang cố gắng giải thích, hãy xem kịch bản sau đây.Kéo-n-Thả trên nội dungCác yếu tố có thể chỉnh sửa
Diện tích có thể chỉnh sửa (hoặc IFRAME trong chế độ chỉnh sửa hoặc một DIV với thuộc tính contentEditable của nó thiết lập là true) đã có chứa các văn bản sau đây:
"thân mến, xin vui lòng lưu ý ...."
Giờ đây, người dùng sẽ kéo một phần tử biểu thị một số mã thông báo từ danh sách các phần tử, qua vùng có thể chỉnh sửa, di chuyển con trỏ qua văn bản cho đến khi dấu mũ xuất hiện ngay trước dấu phẩy (,) trong văn bản như được hiển thị ở trên. Khi người dùng nhả nút chuột tại vị trí đó, HTML sẽ được tiêm vào đó có thể dẫn đến kết quả như sau:
"Kính gửi {UserFirstName}, xin lưu ý ...".
Tôi không biết liệu có ai đã từng làm bất cứ điều gì tương tự như thế này hay ít nhất biết cách người ta sẽ làm điều này bằng cách sử dụng JavaScript.
Mọi trợ giúp sẽ được đánh giá cao.
Có thể không bắt buộc phải áp dụng sự kiện mouseup được ủy quyền trên các ký tự kéo dài như đã đề cập ở trên, có thể sử dụng thuộc tính sự kiện ban đầu của sự kiện có thể hủy để xác định xem thực tế có thể kéo thả được trên một khoảng ký tự hay không. Chỉ cần FYI .... – Raybiez