2014-06-25 5 views
6

स्वीकार करता है मैं HTML5 संतोषजनक div बनाने की कोशिश कर रहा हूं, जो केवल एक सादा पाठ स्वीकार करता है। मैं एचटीएमएल और jQuery उपयोग कर रहा हूँ नीचे:एचटीएमएल 5 संतोषजनक div केवल सादे टेक्स्ट

एचटीएमएल

<div contenteditable="true"></div> 

jQuery

(function() { 
    $('[contenteditable]').on('paste', function (e) { 
    e.preventDefault(); 
    var text = null; 
    text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste Your Text Here'); 
    document.execCommand("insertText", false, text); 
    }); 
}); 

लेकिन यह सभी ब्राउज़रों के लिए काम नहीं कर रहा। getData इंटरनेट एक्सप्लोरर ब्राउज़र में समर्थन नहीं करता है। मैंने स्टैक ओवरफ्लो पर यहां कई समाधानों का उल्लेख करने की कोशिश की, लेकिन मेरे लिए कोई भी काम नहीं किया।

मैं भी

(function() { 
    $('[contenteditable]').on('paste', function (e) { 
    e.preventDefault(); 
    var text = null; 

    if (window.clipboardData && clipboardData.setData) { 
     text = window.clipboardData.getData('text'); 
    } else { 
     text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste Your Text Here'); 
    } 
    document.execCommand("insertText", false, text); 
    }); 
}); 

की कोशिश की लेकिन यह मामला document.execCommand("insertText", false, text); में IE के लिए काम नहीं कर रहा।

फिल्टर एचटीएमएल टैग के बाद डेटा स्वीकार करना संभव बनाने का कोई तरीका है, ताकि कोई भी टाइप, पेस्ट, ड्रॉप या किसी अन्य तरीके से संपादन योग्य div में डेटा दर्ज कर सके। इसे इसे पाठ के रूप में प्रदर्शित करना चाहिए।

+0

देखो: '$ ('

हाय, मैं \ m एचटीएमएल

') .text(); '। आपको 'हाय, मैं HTML हूं' देना चाहिए। –

+0

मुझे लगता है कि यह अलग बात है जिसके बारे में आप बात कर रहे हैं। हमारे मामले में हमें सामग्री चिपकाया जाना है। इसे सादा पाठ में परिवर्तित करें और इसे div में प्रदर्शित करें। – Tarun

+1

मेरी टिप्पणी में "इसे सादे पाठ में परिवर्तित करें" भाग शामिल है। मेरे पास जावास्क्रिप्ट एपीआई के साथ काम करने का कोई अनुभव नहीं है, लेकिन जैसा कि मैंने सवाल पढ़ा है, मुझे समझ में परेशानी है कि आपको क्या परेशानी हो रही है। उदाहरण के लिए, "_now_ IE के लिए काम कर रहा है" के रूप में पढ़ा जाना चाहिए, "_not_ IE के लिए काम नहीं कर रहा है?" –

उत्तर

5

jQuery का बड़ा प्रशंसक नहीं होने के नाते, मेरा समाधान इसका कोई उपयोग नहीं करेगा। वैसे भी यहाँ यह जाता है (यह वैसे भी शुद्ध जावास्क्रिप्ट के रूप में, काम करना चाहिए):

function convertToPlaintext() { 
 
    var textContent = this.textContent; 
 
    this.innerHTML = ""; 
 
    this.textContent = textContent; 
 
} 
 

 
var contentEditableNodes = document.querySelectorAll('[contenteditable]'); 
 

 
[].forEach.call(contentEditableNodes, function(div) { 
 
    div.addEventListener("input", convertToPlaintext, false); 
 
});

3

इस प्रयास करें:

<div contenteditable="plaintext-only"></div> 

संदर्भ: इस अवधारणा का उपयोग करने में https://w3c.github.io/editing/contentEditable.html#h-contenteditable

+2

केवल वेबकिट मुझे लगता है। कल्पना केवल सत्य, झूठी और वारिस के लिए अनुमति देती है। [एमडीएन] (https://developer.mozilla.org/en-US/ दस्तावेज़/वेब/एचटीएमएल/ग्लोबल_एट्रिब्यूट/संतुष्ट) (अंदर 3 चश्मा) – aloisdg

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