2011-10-07 13 views
6

मैं एक रेंज वस्तु बनाने और फिर चयनक्या रेंज ऑब्जेक्ट को "पिछड़ा चयन" के रूप में सेट करना संभव है?

window.getSelection().addRange(myRange); 

कैसे चयन दिशा सेट करने के लिए इस सीमा को जोड़ने? मेरा मतलब दिशा है जिसे anchorNode, anchorOffset, focusNode और focusOffset चयनों के गुणों का उपयोग करके चेक किया जा सकता है।

उत्तर

5

आप इसे extend() (MDN) Selection ऑब्जेक्ट्स का समर्थन करने वाले ब्राउज़र पर ऐसा कर सकते हैं। मोज़िला, वेबकिट और ओपेरा इसका समर्थन करते हैं; आईई संस्करण 11 तक नहीं है और इसमें शामिल नहीं है। extend() को HTML Editing APIs spec में जोड़ा गया है, इसलिए यह अभी तक IE में दिखाई दे सकता है।

function selectRangeBackwards(range) { 
    if (typeof window.getSelection != "undefined") { 
     var sel = window.getSelection(); 
     if (typeof sel.extend != "undefined") { 
      var endRange = range.cloneRange(); 
      endRange.collapse(false); 
      sel.removeAllRanges(); 
      sel.addRange(endRange); 
      sel.extend(range.startContainer, range.startOffset); 
     } 
    } 
} 
+1

IE10 विस्तार का समर्थन नहीं करता() विधि:

यहाँ एक उदाहरण समारोह है। – Inez

+1

@Inez: हाँ। उन्होंने [मेरी बग रिपोर्ट] (https://connect.microsoft.com/IE/feedback/details/737106/implement-missing-extend-method-of-selection) द्वारा अनदेखा किया। –

+1

@ टिमडाउन मैंने अभी इस विधि का परीक्षण मिरक्रॉफ्ट ईडीजीई में किया है और यह काम करता है। शायद, उन्होंने अंततः विस्तार() विधि लागू की। – Kersh