2011-10-05 12 views
6

संभव डुप्लिकेट:
CKEditor - Set cursor position to end of textकैरट सेट फोकस CKEditor के बाद समाप्त करने के लिए

मैं सामग्री का एक बहुत कुछ के साथ एक <div> है। इस div पर क्लिक करने के बाद, CKEditor को इस div को संपादित करने के लिए लोड किया गया है।

अब मैं संपादक के साथ इसे बदलने के बाद सामग्री के अंत में कैरेट/कर्सर सेट करना चाहता हूं।

मेरे कोड वर्तमान में कुछ इस तरह है:

$(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 
    } 

}); 

विचार है:

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(); 
    } 
    } 
}); 

उत्तर

4

नगण्य का एक सा के बाद, मैं निम्नलिखित कोड के साथ काम करने के लिए इसे मिल गया है

  1. रूट नोड प्राप्त करें (शरीर नहीं)
  2. अग्रिम अगली नोड तक, जब तक आगे बढ़ने के लिए कोई और नोड्स न हों।
  3. अंतिम नोड का चयन करें।
  4. संक्षिप्त करें यह
  5. सेट रेंज
+0

महान ... यह काम किया :) (इस सुविधा के बारे में भूल है, और हम इस सुविधा को छोड़ना ... का निर्णय लिया) –

+0

मैं देने के लिए और साथ ही तैयार हो गया था , लेकिन मेरे मालिक वास्तव में वास्तव में वास्तव में चाहते थे: पी –

+0

@ KeesC.Bakker उम्मीद है कि आप मेरी मदद कर सकते हैं ... मैं अपने पृष्ठ के नीचे निम्न के माध्यम से ckeditor शुरू कर रहा हूं: window.onload = function() { CKEDITOR .replace ('संदेश'); }; तो मैं इस काम को करने के लिए ऊपर दिए गए कोड को कहां रखूं? मैं अपने एचटीएमएल भीतर निम्नलिखित है: <पाठ क्षेत्र वर्ग = "CKEditor" id = "संदेश" नाम = "संदेश"><= $ संदेश;?> और $ संदेश पीछा कर रहा है:

Abela

संबंधित मुद्दे