2011-10-05 22 views
6

thể trùng lặp:
CKEditor - Set cursor position to end of textĐặt dấu nháy để chấm dứt sau khi tập trung ckeditor

Tôi có một <div> với rất nhiều nội dung. Sau khi nhấp vào div này, CKEditor được tải để chỉnh sửa div này.

Bây giờ tôi muốn đặt dấu mũ/con trỏ đến cuối nội dung sau khi thay thế bằng trình chỉnh sửa.

Mã của tôi hiện nay là một cái gì đó như thế này:

var editor = CKEDITOR.replace('content', { 
    // Settings 

    // Event listeners 
    on: { 
    instanceReady: function(evt) { 
     var editor = evt.editor; 

     // give focus (displays caret at the beginning of the content, not the end) 
     editor.focus(); 
    } 
    } 
}); 

Trả lời

4

Sau một chút không quan trọng, tôi đã có nó để làm việc với đoạn mã sau:

$(document).ready(function() { 

    CKEDITOR.on('instanceReady', function(ev) { 

     ev.editor.focus(); 

     var s = ev.editor.getSelection(); // getting selection 
     var selected_ranges = s.getRanges(); // getting ranges 
     var node = selected_ranges[0].startContainer; // selecting the starting node 
     var parents = node.getParents(true); 

     node = parents[parents.length - 2].getFirst(); 

     while (true) { 
      var x = node.getNext(); 
      if (x == null) { 
       break; 
      } 
      node = x; 
     } 

     s.selectElement(node); 
     selected_ranges = s.getRanges(); 
     selected_ranges[0].collapse(false); // false collapses the range to the end of the selected node, true before the node. 
     s.selectRanges(selected_ranges); // putting the current selection there 
    } 

}); 

Ý tưởng là:

  1. Lấy nút gốc (không phải nội dung)
  2. Tạm ứng sang nút tiếp theo, cho đến khi không còn nút nào để chuyển sang.
  3. Chọn nút cuối cùng.
  4. Collapse nó
  5. Set phạm vi
+0

lớn ... Nó làm việc :) (Quên về tính năng này, và chúng tôi quyết định rời khỏi tính năng này ra ...) –

+0

Tôi đã sẵn sàng từ bỏ cũng , nhưng ông chủ của tôi thực sự thực sự thực sự muốn nó: P –

+0

@ KeesC.Bakker hy vọng bạn có thể giúp tôi ... Tôi đang khởi xướng ckeditor qua những điều sau ở cuối trang của tôi: window.onload = function() { CKEDITOR .replace ('Thư'); }; Vì vậy, nơi nào chính xác tôi đặt mã bạn có ở trên để thực hiện công việc này? Tôi đã sau trong html của tôi: Và $ tin nhắn được như sau:

Abela