2008-10-12 10 views
5

मेरा एक साइट है जिसमें एक पाठ क्षेत्र प्रस्तुत करने के लिए प्रयोग किया जाता है पर अंदर कोड, मैं कोड है जो निम्न की तर्ज पर कुछ दिखाई दे सकता है है , यह त्रुटि उत्पन्न होती है,एक्सएचटीएमएल और textareas

line 88 column 50 - Error: document type does not allow element "p" here 

यदि यह वैध विधि नहीं है, तो क्या अपेक्षित है? मैं एक अधिभार जावास्क्रिप्ट घटना के साथ एक कामकाज कर सकता था, लेकिन यह अनावश्यक लगता है। भले ही यह आउटपुट को प्रभावित न करे, लेकिन मैं अपनी साइट को मान्य करना चाहूंगा।

उत्तर

8

क्या कोई कारण है कि आप <textarea> के भीतर <p> डालने का प्रयास कर रहे हैं? जैसा कि आपने पाया कि यह वैध नहीं है। अगर यह प्रदर्शन प्रयोजनों के लिए है (यानी, दिखा कोड) यह अनुवाद किया जाना चाहिए:

<textarea>&lt;p&gt;text&lt;/p&gt;</textarea> 

सत्यापन संबंधी समस्याएं परे अनुमति मनमाने ढंग से टैग दिखाने के लिए (जो ठीक से ऊपर के रूप में एन्कोड नहीं कर रहे हैं) एक बहुत बड़ा सुरक्षा मुद्दा हो सकता है। यह सुनिश्चित करने के लिए सर्वोपरि है कि किसी भी उपयोगकर्ता द्वारा आपूर्ति किए गए इनपुट को प्रदर्शित होने से पहले उचित रूप से संचरित किया गया हो।

+0

तैनात डेटा पर इस सुविधा का उपयोग कर सकते हैं। एचटीएमएल इकाइयों को अक्षरों में परिवर्तित करना, फिर उन सभी को ऐसा लगता है :) –

0

आप टेक्स्ट क्षेत्र में टैग छोड़ सकते हैं, और जब आपको नई लाइनों का उपयोग करने की आवश्यकता होती है \ n अन्यथा अपने टैग के स्थान पर &lt;p&gt; और &lt;/p&gt; का उपयोग करें।

0

आप टेक्स्टरेरा सामग्री के प्रारंभ और समाप्ति टैग को प्रतिस्थापित करने के लिए एक ऑनलोड फ़ंक्शन का उपयोग कर सकते हैं।

eg: replace < > with &lt; &gt; 

<textarea cols="" rows="">&lt;p&gt;text&lt;/p&gt;</textarea> 

< पी > पाठ </p >

1

हूँ मैं अपने इस तरह के TinyMCE के रूप में एक WYSIWYG संपादक, बनाने की कोशिश कर सही सोच में? सबसे अधिक ऐसा लगता है कि textarea में HTML इकाइयों का उपयोग करें और इसे जावास्क्रिप्ट के माध्यम से HTML में परिवर्तित करें।

3

क्या सीडीएटीए अनुभाग आपके लिए एक विकल्प होगा?

<textarea><![CDATA[ 
    <p>Blah</p> 
]]></textarea> 
0

आप किसी कारण मैं HTML संस्थाओं में सोच रहा था पाठ क्षेत्र (मूक) के भीतर का प्रदर्शन नहीं करेगा के लिए

function clean_data($value) { 
    if (get_magic_quotes_gpc()) { $value = stripslashes($value); } 
    $value = addslashes(htmlentities(trim($value))); 
    $value = str_replace("\'", "&#39;", $value); 
    $value = str_replace("'", "&#39;", $value); 
    $value = str_replace(":", "&#58;", $value); 
    return $value; 
}