मैं कैरेट को CKEditor3.x में कैसे रख सकता हूँ? मेरे पास 2 पद हैं और मैं दोनों पदों पर insertHTML() का उपयोग करना चाहता हूं।

छद्म कोड:

editor.setCaret(20); // function does not exists
editor.insertHtml('::');
editor.setCaret(40); // function does not exists
editor.insertHtml('::');

मैंने कोशिश की है (कैरेट को स्थिति में सेट करने के लिए: 20):

var ranges = [];
var range = new CKEDITOR.dom.range( this.document );
range.startOffset = 20;
range.endOffset = 20;
ranges.push( range );
editor.getSelection().selectRanges( ranges );

यह काम नहीं कर रहा है। क्या कोई कृपया मेरी सहायता कर सकता है?

3
user706420 21 अप्रैल 2011, 14:10

2 जवाब

सबसे बढ़िया उत्तर

संपादक में टेक्स्ट डालने या एचटीएमएल के साथ कुछ करने के लिए आपको कैरेट स्थिति प्राप्त करने की आवश्यकता नहीं है।

इसे सामान्य एचटीएमएल के रूप में मानें।

पी.एस. यदि आप डोम मैनिपुलेटिंग के बाद शायद कर्सर की स्थिति को पुनर्स्थापित करना चाहते हैं, तो इसे आजमाएं

var s = editor.getSelection();
var selected_ranges = s.getRanges(); // save selected range
// do something
s.selectRanges(selected_ranges); // restore it
3
Boris S 11 मई 2011, 18:31
2
यदि आप सम्मिलित करने से पहले एक श्रेणी सहेजते हैं और चाहते हैं कि सम्मिलित तत्व के बाद कर्सर को स्थान दिया जाए, तो यह काम नहीं करता है। यह सम्मिलित तत्व से पहले कर्सर रखता है। सम्मिलित तत्व के बाद कर्सर को कैसे रखा जाए, यह अभी भी नहीं मिला है। सामान्य व्यवहार यह है कि कर्सर सम्मिलित तत्व के अंदर है, जो कुछ उपयोग मामलों (मेरा!) के लिए काम नहीं करता है।
 – 
eon
11 जिंदा 2012, 22:55
मुझे लगता है कि getSelectedElement() नामक एक फ़ंक्शन है (देखें docs.ckeditor.com/#!/api/…) जिसे CKEDITOR.dom.element का एक उदाहरण देना चाहिए जिसमें focusNext विधि है (देखें docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-focusNext) जो फोकस को अगले तत्व पर ले जाना चाहिए। लेकिन मैं इसे काम नहीं कर सकता =/शायद कोई उस दिशा में खुदाई कर सकता है ..
 – 
s3v3n
5 जुलाई 2013, 18:17

यदि आप html डालने के बजाय insertElement का उपयोग करते हैं (और कहें, एक अवधि तत्व डालें) तो निम्नलिखित को शायद काम करना चाहिए:

editor.insertElement(element);
var range = new CKEDITOR.dom.range(editor.document);
range.moveToElementEditablePosition(element, true);
editor.getSelection().selectRanges([range]);
1
Ron Shalit 2 जुलाई 2012, 19:39