2012-11-13 12 views
5

में एक केवल पढ़ने के लिए पाठ क्षेत्र copyable बनाने के लिए एक textarea और input type="text"highlightable और copyable आईओएस-उपकरणों पर?एचटीएमएल: मैं कैसे कैसे कर सकता हूँ आईओएस-उपकरणों

यह काम नहीं करता:

<textarea readonly="readonly">Totally readonly, cannot be copied</textarea> 

न तो करता है:

<textarea disabled="disabled">Totally readonly, cannot be copied</textarea> 

संपादित: पाठ क्षेत्र लगातार अद्यतन किया जा रहा है, तो यह की एक बंद परिवर्तन नहीं होगा काम।

टेक्स्टरेरा की सामग्री भी HTML हो सकती है। http://jsfiddle.net/sebnilsson/jfvWZ/

+1

क्या आप केवल उपयोगकर्ता को टेक्स्ट को संशोधित करने से रोकना चाहते हैं जबकि इसे चुनने योग्य और कॉपी करने योग्य रखें? – Hejazi

+0

@ हेजाज़ी हाँ, यह सही है! –

+0

आप टेक्स्ट व्यू पर एक अदृश्य बटन डाल सकते हैं जो टेक्स्ट कॉपी करता है, या उसके आगे वाला एक बटन जो "प्रतिलिपि" कहता है। फ्लैश के बिना – AMayes

उत्तर

6

एक समाधान पृष्ठ पर सभी केवल पढ़ने के लिए textareas खोजने के लिए और रीड ओनली फ़ील्ड के स्थान पर सामग्री के साथ एक div रेंडर करने के लिए हो सकता है:

मैं एक JSFiddle है कि मैं इस पर परीक्षण किया है। मैंने इसे प्रदर्शित करने के लिए कुछ बहुत ही सरल जेएस लिखा है।

$('textarea[readonly]').removeAttr('readonly').each(function() { 
    var $this = $(this); 
    $this.hide().after('<div data-textarea="' + $this.attr('id') 
     + '" class="textarea">' + $this.val() + '</div>'); 
}).on('textareachange', function() { 
    var $this = $(this); 
    $('[data-textarea="' + $this.attr('id') + '"]').html($this.val()); 
}); 

की तर्ज पर

कुछ समय भी आप पाठ क्षेत्र मान अपडेट घटना को गति प्रदान करने की आवश्यकता होगी। उदाहरण

$('textarea').val('test').trigger('textareachange'); 

के लिए वहाँ आदि

http://jsfiddle.net/ssfUx/3/

+0

यह काम करेगा, अगर यह मेरी समस्या में बाधा के लिए नहीं था। सवाल अपडेट किया गया, क्षमा करें। –

+0

आह, मैंने उपरोक्त उत्तर को इस के लिए पूरा करने के लिए अद्यतन किया है। – JohnC

+0

Seb आपके संपादन में एक ऐसा फ़ंक्शन था जो स्निपेट – JohnC

0

मैं अपने iPhone पर कुछ पाठ का चयन सफल है स्टाइल पर उदाहरण के साथ यहां एक अधिक व्यापक उदाहरण है, लेकिन कई कोशिश की जरूरत है।

<textarea readonly onfocus="this.blur();">Totally readonly, CAN BE copied</textarea> 

और पिछले: http://jsfiddle.net/jfvWZ/6/

<div> 
    <label>Plain div</label><br /> 
    <div id="plain-div" onFocus="this.blur();"> 
     Plain div 
    </div> 
</div> 

आसान iPhone

+0

में नहीं था JSFiddle को अपडेट किया गया और नवीनतम आईओएस के साथ आईफोन 5 पर काम नहीं करता है। http://jsfiddle.net/jfvWZ/ कि आप एक div से प्रतिलिपि बना सकते हैं कभी भी कोई मुद्दा नहीं था। –

0

पर पाठ इसी तरह इस मुद्दे में भाग का चयन करें।

सुनिश्चित नहीं है कि निम्नलिखित एक सभ्य, सही या अर्थपूर्ण विकल्प है, लेकिन यह मेरे लिए काम करता है।

मैंने बस टेक्स्टरे को एक div को पढ़ने के लिए बदल दिया, उसी शैलियों को लागू किया गया।

एक दोष यह है कि जावास्क्रिप्ट में मैं इस ['myForm'] के साथ div को लक्षित नहीं कर सका। यह डोम में फॉर्म तत्व का बच्चा नहीं प्रतीत होता है।

इसके बजाय मुझे आईडी द्वारा तत्व प्राप्त करना था और टेक्स्टरेरा के साथ मान सेट करने के बजाय इसे आंतरिक HTML सेट करना था।

यह आईपैड 1 आईओएस 5 और आईफोन 4 एस आईओएस 7 पर काम करता है अब मैं क्लिपबोर्ड पर टेक्स्ट चुनने और कॉपी करने में सक्षम हूं।

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