2012-02-17 11 views
7

यह एक जटिल है! मैं सामग्री के साथ काम कर रहा हूं क्रोम में संपादन योग्य और मुझे सिर पिघलने की समस्या का सामना करना पड़ रहा है। जब मैं रिटर्न कुंजी दबाता हूं, क्रोम आंतरिक HTML में एक नया div डालता है। यह ठीक और बेवकूफ है। समस्या यह है कि लाइन ब्रेक कहीं भी div के टेक्स्ट सामग्री में नहीं पाया जाता है। मुझे वास्तव में टेक्स्टकंट पर लाइन ब्रेक जोड़ने के लिए एक ही जगह पर आंतरिक HTML में div ब्रेक के रूप में एक तरीका पता लगाने की आवश्यकता है।टेक्स्टकंटेंट या आंतरिक टेक्स्ट में केवल लाइनब्रेक जोड़ें - क्रोम

कोई विचार?

अद्यतन:

मैं innerText लेकिन फिर पंक्ति विराम कि देखते हैं पृष्ठ लोड होने अनदेखी कर रहे हैं का उपयोग कर सकते हैं। मुझे इन तरीकों में से एक में स्थिरता की आवश्यकता है। दूसरे शब्दों में, मुझे पेज लोड पर मौजूद लाइन ब्रेक दिखाने के लिए नए इनपुट लाइन ब्रेक या आंतरिक टेक्स्ट दिखाने के लिए टेक्स्ट सामग्री की आवश्यकता है।

यहाँ एक अद्यतन डेमो है:

function checkit() { 
 
    var c1 = document.getElementById('c1') 
 
    alert("TEXTCONTENT:\n" + c1.textContent + "\n\nINNERTEXT:\n" + c1.innerText + "\n\nINNERHTML:\n" + c1.innerHTML) 
 
}
div {padding: 20px; border-bottom: 1px solid #CCC;}
<div><a href="#" onclick="checkit()">check it</a></div> 
 

 
<div contentEditable="true" id="c1">click inside this <b>div</b>, 
 
press return and then press <b>check it</b> above</div>

+0

संभावित डुप्लिकेट [मैं एक तत्व.टेक्स्ट सामग्री में नई लाइन/कैरिज रिटर्न कैसे डाल सकता हूं?] (Http://stackoverflow.com/questions/9980416/how-can-i-insert-new-line-carriage- रिटर्न-इन-ए-एलिमेंट-टेक्स्टकंटेंट) –

उत्तर

3

मैं प्रत्येक स्थिति के लिए एक अलग चर लोड करके इस हल किया है:

पृष्ठ लोड पर, मैं textContent जो लाइन बरकरार टूट जाता रहता है का उपयोग करें। जब उपयोगकर्ता टाइपिंग शुरू करता है, तो मैं innerText का उपयोग करता हूं जो सम्मिलित पृष्ठ ब्रेक को पहचानता है। एक सरल अगर कथन चाल करेगा!

+5

दुर्भाग्यवश 'innerText' फ़ायरफ़ॉक्स द्वारा समर्थित नहीं है ... – adriantoine

+0

आंतरिक टेक्स्ट अब सभी ब्राउज़रों द्वारा समर्थित है: http://caniuse.com/#feat=innertext – cronoklee

4

इसका कारण यह है textContent शैली के बारे में पता नहीं है। नतीजतन, उदाहरण के लिए, यह छिपी हुई सामग्री प्रदर्शित करता है।

c1.textContent से c1.innerText बदलें और यह लाइन ब्रेक प्रदर्शित करेगा।

+0

धन्यवाद डेनिस लेकिन अब मुझे विपरीत समस्या है, उस लाइन ब्रेक जो सामग्री में पहले से मौजूद हैं, को अनदेखा कर दिया गया है। क्या स्थिरता पाने का कोई तरीका है? (ऊपर अपडेट देखें) – cronoklee

+0

इस तरह यह काम करना चाहिए। एक HTML पृष्ठ में एक लाइन ब्रेक प्रदर्शित नहीं होता है। इसके बजाए '
'का उपयोग करें। – Dennis

+0

धन्यवाद, यह मेरे लिए काम करता है –

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