मैं वर्तमान में माउस की स्थिति को एक सीमा में परिवर्तित करने में सक्षम होना चाहता हूं, विशेष रूप से CKEditor में।जावास्क्रिप्ट माउस स्थिति को चयन श्रेणी
CKEditor एक सीमा के अनुसार कर्सर की स्थापना के लिए एक API प्रदान करता है:
var ranges = new CKEDITOR.dom.range(editor.document);
editor.getSelection().selectRanges([ ranges ]);
के बाद से CKEditor इस एपीआई प्रदान करता है, समस्या इस आवश्यकता को दूर करने और सिर्फ एक रास्ता से श्रृंखला का उत्पादन करने के लिए द्वारा सरलीकृत किये जा सकते माउस विभिन्न HTML तत्वों वाले एक div पर निर्देशांक करता है।
हालांकि, यह टेक्स्टरेरा में कर्सर की स्थिति में माउस समन्वय को परिवर्तित करने जैसा नहीं है क्योंकि टेक्स्टरेअस ने कॉलम चौड़ाई और पंक्ति ऊंचाई तय की है जहां सीकेएडिटर एक आईफ्रेम के माध्यम से एचटीएमएल प्रस्तुत करता है।
this के आधार पर, ऐसा लगता है कि सीमा तत्वों पर लागू की जा सकती है।
आप वर्तमान माउस स्थिति के निकटतम प्रारंभ/समाप्ति सीमा को कैसे समझेंगे?
संपादित करें: माउसअप ईवेंट पर एक श्रेणी का चयन करने के लिए कोई व्यक्ति ckeditor API का उपयोग कैसे कर सकता है इसका एक उदाहरण।
editor.document.on('mouseup', function(e) {
this.focus();
var node = e.data.$.target;
var range = new CKEDITOR.dom.range(this.document);
range.setStart(new CKEDITOR.dom.node(node), 0);
range.collapse();
var ranges = [];
ranges.push(range);
this.getSelection().selectRanges(ranges);
});
ऊपर के उदाहरण के साथ समस्या यह है कि घटना लक्ष्य नोड (e.data। $। लक्ष्य) केवल जैसे HTML, शरीर, या आईएमजी के रूप में, लेकिन पाठ नोड्स के लिए नहीं नोड्स के लिए फायरिंग कर रहा है। यहां तक कि अगर ऐसा होता है, तो ये नोड टेक्स्ट के हिस्सों का प्रतिनिधित्व करते हैं जो टेक्स्ट के उस हिस्से में कर्सर को माउस की स्थिति में सेट करने का समर्थन नहीं करेंगे।