Tôi đang làm việc trên một trình soạn thảo văn bản phong phú như ứng dụng web, về cơ bản là trình soạn thảo XML được viết bằng javascript.Sử dụng javascript để mở rộng Phạm vi DOM để bao gồm các nút được chọn một phần
Mã javascript của tôi cần bao bọc một lựa chọn các nút từ vùng chứa div có thể chỉnh sửa nội dung. Tôi đang sử dụng các phương pháp được mô tả tại MDC. Nhưng kể từ khi tôi cần phải đồng bộ hóa container div nội dung XML của tôi DOM Tôi muốn tránh lựa chọn một phần như mô tả trong w3c ranges:
<BODY><H1>Title</H1><P>Blah xyz.</P></BODY
............^----------------^............
lựa chọn này sẽ khởi động bên trong H1 và kết thúc bên trong P, Tôi muốn nó bao gồm H1, P hoàn toàn.
Có cách nào dễ dàng để mở rộng lựa chọn để bao gồm một phần trẻ em được chọn hoàn toàn không? Về cơ bản tôi muốn sử dụng range.surroundContents() mà không cần chạy vào một ngoại lệ.
(mã này không cần phải làm việc với opera/IE)
Thật vậy, nhưng tôi nghĩ rằng đây là theo dõi đúng. Tôi sẽ cố gắng tạo một lựa chọn tùy chỉnh từ bản gốc có các thuộc tính này. –
Tôi sẽ mở rộng câu hỏi của mình để làm cho nó rõ ràng hơn. Ngoài ra tôi đã cập nhật ví dụ tại http://jsfiddle.net/GFuX6/5/ –
Chọn một số văn bản, nhấn thoát và văn bản trở nên đậm. Có một dòng dài trong fiddle: 'window.getSelection(). GetRangeAt (0) .surroundContents (tag);' Fiddle hiện tại mở rộng ranh giới các nút văn bản, nhưng tôi không thể tìm cách che một phần bao gồm các nút. –