2012-01-06 16 views
10

मैंने सोचा कि यह मेरे स्वयं के टेक्स्ट एडिटर को ला ला डॉक्स लॉन्च करना दिलचस्प होगा, पूरी तरह से जिज्ञासा के लिए (पहिया को पुनर्निर्मित करने के लिए कुछ भी नहीं)। मैं सोच रहा हूं कि डॉक्स और जोहो राइटर जैसे एप्लिकेशन अलग-अलग पृष्ठों पर पाठ को अलग करने, या उनके सामग्री के साथ शीर्षकों को रखने जैसे उन्नत लेआउट प्राप्त कर सकते हैं, आपको पता है, TinyMCE या nicedit जैसी चीजें संपादक नहीं करेंगे। मैं designMode और contenteditable का उपयोग करने के बारे में जानता हूं, और मैंने लोगों को कैनवास का उपयोग करके सुना है, लेकिन क्या कोई बेहतर तरीका है? एमएस या लिबर ऑफिस जैसे डेस्कटॉप कार्यालय सूट कैसे प्रबंधित करते हैं? विशेष रूप से सामग्री को अलग-अलग पृष्ठों में विभाजित करते समय संपादित किया जा रहा है?जावास्क्रिप्ट वर्ड प्रोसेसर/एडिटर (या, Google डॉक्स आर्किटेक्चर)

एक तरफ ध्यान दें, किसी को भी पता है कि नया Google डॉक्स कैसे काम करता है? यह संतोषजनक उपयोग नहीं करता है (ज़ोहो डिज़ाइन मोड का उपयोग करता है), न ही कैनवास। जो मैंने पाया, उससे <div> एस का केवल एक बहुत गहरा पदानुक्रम है।

+1

साथ मैं हैरान करता है, तो वे सिर्फ जावास्क्रिप्ट के साथ कुंजीपटल/माउस इनपुट को पकड़ने और उचित रूप में डोम में परिवर्तन नहीं होगा। उस ने कहा, मैं मुझे वापस लेने के लिए कुछ भी अनुमान लगा रहा हूं और मैं इसे देखने के लिए बहुत आलसी हूं। –

+2

Google ने अपने सभी एनिमेशन और संपादकों को बनाने के लिए घोंसले टैग के रचनात्मक तरीकों से मुझे आश्चर्यचकित नहीं किया। –

+1

टिककॉन, मैंने इसके बारे में सोचा। हर अल्फान्यूमेरिक कुंजी, प्लस संशोधक को कैप्चर करने के माध्यम से जाने के लिए इतनी बड़ी परेशानी होती है। मुझे आश्चर्य है कि क्या किसी भी तरह का प्रदर्शन जुर्माना होगा। एक तरफ ध्यान दें, डीओएम को क्रॉल करने के बाद मुझे संदेह है कि डॉक्स में देखभाल वास्तव में एक चमकदार डीओएम तत्व है। मन उड़ा, कोई भी? – Art

उत्तर

3

आपका 'सवाल' एक छोटे से व्यापक है, लेकिन मैं एक छोटा सा आपकी सहायता करने की कोशिश करेंगे:

गूगल डॉक्स उपयोग कर रहा है एक छिपे हुए iframe (नहीं display:none, है सिर्फ इतना है कि उपयोगकर्ता वास्तव में नहीं देख सकते यह) सामग्री संपादन योग्य (। डॉक्स-टेक्सटेवेंटटाइटल-आईफ्रेम) के साथ एक शरीर के साथ; जब आप कैरेट ब्लिंकिंग देखते हैं तो इसका मतलब है कि संपादन योग्य शरीर केंद्रित है और जो कुछ भी आप लिखते हैं वह डीओएम (विशेष एचटीएमएल अक्षरों को स्वच्छ करने के बाद) में डाला जाता है

Google डॉक्स, जैसा कि मैंने कहा, डीओएम संशोधन का उपयोग कर रहा है (कैनवास नहीं है या svg); यहां तक ​​कि देखभाल भी div झपकी है।

TinyMCE एक ऐसी ही तकनीक का उपयोग करता है, लेकिन एक इनपुट फ़ील्ड (यदि किसी सामग्री संपादन योग्य शरीर के बजाय)

+0

प्वाइंट लिया - मैंने सवाल स्पष्ट किया। यह काफी सुरुचिपूर्ण समाधान है - मुझे लगता है कि कीप्रेस को पकड़ा जाता है और एक सीमित राज्य मशीन पर आधारित होता है, कार्यों को लागू करने या वर्णों को सम्मिलित करने जैसे कार्यों को लिया जाता है? – Art

+0

घटना वास्तव में तकनीकी अर्थ में नहीं पकड़ी जाती है, सबकुछ शरीर पर लिखा जाता है (या TinyMCE में इनपुट) और चरित्र के "दस्तावेज़" में प्रतिलिपि बनाने के तुरंत बाद और शरीर/इनपुट साफ़ हो जाता है। ऐसा इसलिए है क्योंकि घटना को कैप्चर करना कुंजीकोड (विभिन्न ब्राउज़रों/सेटअप) की व्याख्या में असंगतता की ओर जाता है। –

+0

यदि घटनाओं को इस तरह से पकड़ा नहीं जा रहा है, तो कोई शरीर को स्वयं क्यों संपादित नहीं करेगा? – Art

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