2010-11-15 7 views
21

जावास्क्रिप्ट में, उपयोगकर्ता के टेक्स्ट चयन तक पहुंचने और टेक्स्ट चयन (या श्रेणियां) बनाने के लिए कई विधियां हैं - http://www.quirksmode.org/dom/range_intro.html देखें।क्या आप जावास्क्रिप्ट में उपयोगकर्ता के टेक्स्ट चयन को सेट और/या बदल सकते हैं?

उस पृष्ठ के अनुसार, आप प्रोग्रामेटिक रूप से एक श्रेणी बना सकते हैं, और उसमें टेक्स्ट तक पहुंच सकते हैं। लेकिन ऐसा करने से उपयोगकर्ता के टेक्स्ट चयन में कोई बदलाव नहीं होता है, या उपयोगकर्ता को कुछ चयनित टेक्स्ट बनाते हैं यदि वे पहले से नहीं हैं।

क्या आप जावास्क्रिप्ट में उपयोगकर्ता के टेक्स्ट चयन को सेट और/या बदल सकते हैं?

+1

क्या आपका मतलब है कि आप पृष्ठ में कुछ पाठ अचानक प्रकट होना चाहते हैं? ब्लू हाइलाइट और सबकुछ? –

+0

@ छाया: हाँ, यह है। –

उत्तर

31

हां। सभी ब्राउज़रों में आप उपयोगकर्ता के चयन से एक या अधिक Range एस या TextRange प्राप्त कर सकते हैं, और Range और TextRange दोनों में सीमा की सामग्री को बदलने के तरीके हैं।

अद्यतन

आप एक Range बनाने और अधिकांश ब्राउज़र में Selection वस्तु में जोड़कर और IE में < = 8.

एक TextRange बनाने और उसके select() विधि को फोन करके उपयोगकर्ता के चयन सेट कर सकते हैं

उदाहरण के लिए, किसी तत्व की सामग्री को शामिल करने के लिए चयन सेट करने के लिए:

function selectElementContents(el) { 
    if (window.getSelection && document.createRange) { 
     var sel = window.getSelection(); 
     var range = document.createRange(); 
     range.selectNodeContents(el); 
     sel.removeAllRanges(); 
     sel.addRange(range); 
    } else if (document.selection && document.body.createTextRange) { 
     var textRange = document.body.createTextRange(); 
     textRange.moveToElementText(el); 
     textRange.select(); 
    } 
} 

Selection ऑब्जेक्ट के कई तरीके भी हैं जिनका उपयोग गैर-आईई ब्राउज़र में उपयोगकर्ता के चयन को बदलने के लिए किया जा सकता है। यदि आप चयन को बदलना चाहते हैं, तो आप अधिक विशिष्ट हो सकते हैं, तो सहायता करना आसान होगा।

+0

आह हाँ, क्षमा करें, मैंने प्रश्न को बहुत अच्छी तरह से वाक्यांश नहीं दिया - मैं वास्तव में उपयोगकर्ता के टेक्स्ट चयन को सेट करने के लिए देख रहा हूं, जब उनके पास पहले से कोई नहीं है। –

+0

एक साथ विभिन्न श्रेणियों का चयन करना संभव है। मैं पाठ के कई हिस्सों को चुनने में सक्षम होना चाहता हूं जो असंतुलित हैं। – Techsin

+1

@Techsin: हाँ, लेकिन केवल फ़ायरफ़ॉक्स में। आप जिस श्रेणी को चुनना चाहते हैं, उसके लिए 'addRange() 'पर कॉल करें। –

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