2010-06-28 7 views
6

वहाँ LyX और ऐसे संपादक हैं जो यह सुनिश्चित करने का प्रयास करते हैं कि आप टेक्स्ट लिखें जिसमें एक अलग संरचना है। मैं एक html5 सामग्री से एक ही व्यवहार चाहता हूं संपादन योग्य फ़ील्ड को छोड़कर मैं नहीं जानता कि कैसे।सामग्री कैसे चालू करें एक संरचित मार्कअप संपादक में संपादन योग्य?

मेरे आवश्यकताओं:

  • कोई DIV -tags बनाई गई हैं।
  • टेक्स्ट कंटेनर के बाहर पाठ की अनुमति नहीं है। (पैराग्राफ, हेडिंग्स, प्री-ब्लॉक्स और इनलाइन-एलिमेंट्स)

मुझे यह भी पता लगाने की आवश्यकता है कि सामग्री को कैसे पार किया जाए और उसे प्रतिबंधित रूप में सर्वर पर धक्का दें।

उत्तर

5

यहाँ इसका क्या मतलब एक तत्व संपादन योग्य होने के लिए के लिए डोम विनिर्देश है (मैं भी चीजों पर एक अच्छा प्रलेखन मैं एक contenteditable -field के लिए क्या कर सकते हैं प्यार करता हूँ): http://www.w3.org/TR/html5/editing.html#editable

यह ऐसा लगता है कि सभी मौजूदा पैराग्राफ टैग और कंटेंट टैग करने योग्य टैग्स आपको वही देगा जो आपको चाहिए, अगर मैं समझता हूं कि आप क्या पूछ रहे हैं। यदि आप चाहते हैं कि उपयोगकर्ता नए पैराग्राफ और शीर्षलेख डालने में सक्षम हो, तो संपादन करते समय एंटर कुंजी क्रोम में <br> टैग के रूप में लाइन ब्रेक डालेगी, लेकिन यदि उपयोगकर्ता HTML टैग्स में टाइप करता है तो वे बच जाएंगे और बस टेक्स्ट के रूप में दिखाई देंगे। अन्य स्वरूपित सामग्री डालने के लिए, यह पूरी तरह से उपयोगकर्ता एजेंट तक है; क्रोम में मेरे परीक्षण से पता चलता है कि यह स्पष्ट रूप से उपयोगकर्ता को बोल्ड/इटालिक/आदि डालने की अनुमति नहीं देता है। पाठ।

संपादित: जाहिरा तौर पर क्रोम में (और शायद विस्तार से, सफारी के साथ-साथ), दबाने नियंत्रण-मैं, नियंत्रण-बी, नियंत्रण-यू समान व्यवहार आप एक अमीर पाठ संपादक से उम्मीद कर सकते हैं का कारण!

मैं Firefox में भी परीक्षण किया और पाया कि, क्रोम के विपरीत है और काफी कल्पना के विपरीत नहीं है, यह करता है वास्तव में नई सम्मिलित <br> की की <p> टैग बजाय, एक _moz_dirty="" विशेषता के साथ पर शामिल किया। आपको इसे हटाने की आवश्यकता नहीं है; यदि फ़ायरफ़ॉक्स spec का पालन करता है, तो यह टैग के बाहर पाठ डालने से कभी भी डोम को तोड़ नहीं देगा। लेकिन, ध्यान दें कि क्रोम और फ़ायरफ़ॉक्स का उपयोग करने वाले उपयोगकर्ता विभिन्न HTML संरचनाओं का उत्पादन करेंगे, जिन्हें आप जावास्क्रिप्ट या सर्वर-साइड सेनेटिज़ेशन के साथ चिकना करना चाहते हैं ... मेरे पास यह मशीन यह उपलब्ध कराने के लिए आईई उपलब्ध नहीं है कि यह कैसे संभालें दुर्भाग्यवश, न्यूलाइन, और माइक्रोसॉफ्ट के दस्तावेज निर्दिष्ट नहीं है।

सर्वर पर इसे धक्का देने के लिए, आप सवाल में तत्वों की टेक्स्ट सामग्री खींचकर AJAX के साथ ऐसा कर सकते हैं (या केवल पूरे <div> संतोषजनक बनाएं), अपनी टेक्स्ट सामग्री की एक सरणी बनाकर, और फिर इसे पोस्ट करना सर्वर के लिए। JQuery के साथ यह करना बहुत आसान है (अनुरोध के लिए इसके साथ आगे की सहायता प्रदान की जा सकती है)। `

कुछ पाठ

after line break
after another line break

` यहां तक ​​कि सादे
कि से बेहतर होगा:

+0

मैं एक पैराग्राफ टैग contenteditable बनाती हूँ, तो यह सिवाय यह जब दर्ज दबाने सामान इस तरह का होता है अन्यथा अच्छा है। – Cheery

+0

आप किस ब्राउजर का उपयोग कर रहे हैं? प्रवेश दबाते समय मैं जो व्यवहार देख रहा हूं वह है, एक '
'टैग डाला गया है। यह वास्तव में थोड़ा चिंताजनक है; यदि आप इस तरह से इसे संभालने के लिए विभिन्न ब्राउज़रों पर भरोसा नहीं कर सकते हैं, तो आपको जो भी ढूंढ रहे हैं उसे पाने के लिए आपको बहुत सारी जावास्क्रिप्ट हैकिंग की आवश्यकता हो सकती है ... –

+0

मैंने क्रोमियम 5 की कोशिश की, ठीक है। क्रोमियम 6 कोशिश करते हैं .. – Cheery

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