दिलचस्प पोस्ट
निर्धारित करें कि एक स्ट्रिंग जावा में एक पूर्णांक है एससीएसएस और एसस के बीच अंतर क्या है? मैं कुछ एंड्रॉइड ऐप्स और आईसीएस में देखता हूं जैसे मैं सहायता ओवरले कैसे बनाऊँ? मैं JavaScript में regex literals को कैसे जोड़ सकता हूं? NSUserDefaults क्यों नहीं मेरे मूल्यों को बचत? क्या आप समापन समझा सकते हैं (जैसा कि वे पायथन से संबंधित हैं)? समारोह हस्ताक्षर का वापसी प्रकार हिस्सा है? दूसरे के बाद एक को निष्पादित करने के लिए मैं 3 कार्यों को कैसे कॉल करूँ? जावा में एक्स + + और ++ एक्स के बीच क्या कोई अंतर है? कैसे जावा प्रक्रिया को पूरी तरह से रोकना है? C ++ को उपयोगकर्ता द्वारा प्रदत्त डिफ़ॉल्ट कन्स्ट्रक्टर की आवश्यकता क्यों है- एक const वस्तु का निर्माण? विशिष्ट फ़ाइल पर विवादित विलय के लिए मैं हमेशा अपने स्थानीय संस्करण का चयन करने के लिए गिट को कैसे बताऊँ? कॉर्स jQuery के AJAX अनुरोध मैं कैसे पता लगा सकता है कि एक बाहरी कीबोर्ड एक आईपैड पर मौजूद है या नहीं? मैं गीट में अस्थिर परिवर्तन कैसे छोड़ूं?

एकल माउस क्लिक के साथ सभी डीआईवी टेक्स्ट का चयन करें

जब उपयोगकर्ता DIV पर क्लिक करता है तो DIV टैग की सामग्री को हाइलाइट / चयन कैसे करें … विचार यह है कि सभी पाठ हाइलाइट / चयनित हैं ताकि उपयोगकर्ता को मैन्युअल रूप से माउस के साथ टेक्स्ट को हाइलाइट करने की आवश्यकता न हो और संभावित रूप से पाठ का थोड़ा सा याद आती है?

उदाहरण के लिए, कहते हैं कि हमें नीचे एक डीआईवी मिला है:

<div id="selectable">http://example.com/page.htm</div> 

… और जब उपयोगकर्ता उस यूआरएल पर किसी भी यूआरएल पर क्लिक करता है तो संपूर्ण यूआरएल पाठ हाइलाइट किया जाता है ताकि वे ब्राउजर में आसानी से चयनित पाठ को खींच सकें, या राइट क्लिक से पूरा यूआरएल कॉपी कर सकें।

धन्यवाद!

वेब के समाधान से एकत्रित समाधान "एकल माउस क्लिक के साथ सभी डीआईवी टेक्स्ट का चयन करें"

 <script type="text/javascript"> function selectText(containerid) { if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(document.getElementById(containerid)); range.select(); } else if (window.getSelection) { var range = document.createRange(); range.selectNode(document.getElementById(containerid)); window.getSelection().removeAllRanges(); window.getSelection().addRange(range); } } </script> <div id="selectable" onclick="selectText('selectable')">http://example.com/page.htm</div> 

अब आपको आईडी को एक तर्क के रूप में पास करना होगा, जो कि इस मामले में "चयन योग्य" है, लेकिन यह अधिक ग्लोबल है, जिससे आप इसे बिना उपयोग किए कई बार भी इस्तेमाल कर सकते हैं, जैसा कि चिबोर्ग का उल्लेख है, jQuery।

2017 का अद्यतन करें:

नोड की सामग्री कॉल का चयन करने के लिए:

 window.getSelection().selectAllChildren( document.getElementById( id ) ); 

यह IE9 + (मानक मोड में) सहित सभी आधुनिक ब्राउज़रों पर काम करता है।

नीचे मूल उत्तर window.getSelection().addRange( range ); बाद से अप्रचलित है window.getSelection().addRange( range ); हटा दिया गया है


मूल उत्तर:

ऊपर दिए गए सभी उदाहरणों का उपयोग:

  var range = document.createRange(); range.selectNode( ... ); 

लेकिन इसके साथ समस्या यह है कि वह डीआईवी टैग आदि सहित नोड का चयन करता है।

नोड के टेक्स्ट को ओपी प्रश्न के अनुसार चुनने के लिए आपको इसके बजाय कॉल करने की ज़रूरत है:

  range.selectNodeContents( ... ) 

तो पूरा स्निपेट होगा:

  function selectText( containerid ) { var node = document.getElementById( containerid ); if ( document.selection ) { var range = document.body.createTextRange(); range.moveToElementText( node ); range.select(); } else if ( window.getSelection ) { var range = document.createRange(); range.selectNodeContents( node ); window.getSelection().removeAllRanges(); window.getSelection().addRange( range ); } } 

न्यूरॉक्सिक का उत्तर वास्तव में मददगार था। मुझे क्रोम के साथ केवल एक परेशानी थी, क्योंकि जब मैंने एक बाह्य डिवा पर क्लिक किया था, तो यह काम नहीं कर रहा था। नई रेंज जोड़ने से पहले मैं इसे पुराने श्रेणियों को निकाल सकता था:

 function selectText(containerid) { if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(document.getElementById(containerid)); range.select(); } else if (window.getSelection()) { var range = document.createRange(); range.selectNode(document.getElementById(containerid)); window.getSelection().removeAllRanges(); window.getSelection().addRange(range); } } <div id="selectable" onclick="selectText('selectable')">http://example.com/page.htm</div> 

शुद्ध CSS3 समाधान है:

 .selectable{ -webkit-touch-callout: all; /* iOS Safari */ -webkit-user-select: all; /* Safari */ -khtml-user-select: all; /* Konqueror HTML */ -moz-user-select: all; /* Firefox */ -ms-user-select: all; /* Internet Explorer/Edge */ user-select: all; /* Chrome and Opera */ } 

उपयोगकर्ता-का चयन गैर-मानक सीएसएस प्रोपेर्टी है, लेकिन ब्राउज़र समर्थन अच्छा है। https://developer.mozilla.org/en-US/docs/Web/CSS/user-select https://www.w3schools.com/cssref/playit.asp?filename=playcss_user-select&preval=all

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

नोट: "document.selection" और "createTextRange ()" के सभी संदर्भ IE 8 और निम्न के लिए हैं … यदि आप इस तरह से मुश्किल सामान करने का प्रयास कर रहे हैं तो आपको उस दैत्य का समर्थन करने की आवश्यकता नहीं होगी I

 function selectElemText(elem) { //Create a range (a range is a like the selection but invisible) var range = document.createRange(); // Select the entire contents of the element range.selectNodeContents(elem); // Don't select, just positioning caret: // In front // range.collapse(); // Behind: // range.collapse(false); // Get the selection object var selection = window.getSelection(); // Remove any current selections selection.removeAllRanges(); // Make the range you have just created the visible selection selection.addRange(range); } 

टेक्स्ट क्षेत्र फ़ील्ड का उपयोग करके, आप इसका उपयोग कर सकते हैं: (Google के माध्यम से)

 <form name="select_all"> <textarea name="text_area" rows="10" cols="80" onClick="javascript:this.form.text_area.focus();this.form.text_area.select();"> Text Goes Here </textarea> </form> 

इस तरह मैं सबसे वेबसाइटों को देख रहा हूं। वे सिर्फ सीएसएस के साथ शैली करते हैं, इसलिए यह टेक्स्टरेआ की तरह नहीं दिखता।

यह स्निपेट आपको आवश्यक कार्यक्षमता प्रदान करता है आपको क्या करने की ज़रूरत है उस डिवेल में कोई इवेंट जोड़ता है जो कि उसमें FnSelect सक्रिय करता है एक त्वरित हैक जिसे आप पूरी तरह से नहीं करना चाहिए और संभवत: शायद काम न करें, ऐसा दिखाई देगा:

 document.getElementById("selectable").onclick(function(){ fnSelect("selectable"); }); 

जाहिर है यह सोचते हुए कि स्निपेट से जुड़ा हुआ शामिल किया गया था।

मुझे यह फ़ंक्शन एक jQuery प्लगइन के रूप में लपेटना उपयोगी पाया गया है:

 $.fn.selectText = function () { return $(this).each(function (index, el) { if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(el); range.select(); } else if (window.getSelection) { var range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } }); } 

तो, यह पुन: प्रयोज्य समाधान हो जाता है तो आप यह कर सकते हैं:

 <div onclick="$(this).selectText()">http://example.com/page.htm</div> 

और यह डिव में टेस्ट का चयन करेगा।

इस सरल समाधान के बारे में कैसे? 🙂

 <input style="background-color:white; border:1px white solid;" onclick="this.select();" id="selectable" value="http://example.com/page.htm"> 

यकीन है कि यह div- निर्माण नहीं है, जैसा कि आपने उल्लेख किया है, लेकिन अभी भी यह मेरे लिए काम किया है

निको ले: इस सरल समाधान के बारे में कैसे? 🙂

 `<input style="background-color:white; border:1px white solid;" onclick="this.select();" id="selectable" value="http://example.com/page.htm">` 

…..

इससे पहले कोड:

 <textarea rows="20" class="codearea" style="padding:5px;" readonly="readonly"> 

कोड के बाद:

 <textarea rows="20" class="codearea" style="padding:5px;" readonly="readonly" onclick="this.select();" id="selectable"> 

बस इस भाग पर क्लिक करें = "this.select ();" आईडी = "चयन" मेरे कोड में ठीक काम किया एक माउस क्लिक के साथ मेरे कोड बॉक्स में सभी का चयन करें।

मदद के लिए धन्यवाद निको ले!

 $.fn.selectText = function () { return $(this).each(function (index, el) { if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(el); range.select(); } else if (window.getSelection) { var range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } }); } 

उपरोक्त उत्तर क्रोम में काम नहीं कर रहा है क्योंकि addRange पिछले जोड़ा श्रेणी को हटा दें। मैं सीएसएस के साथ नकली चयन के बगल में इसके लिए कोई समाधान नहीं मिला।