मैं कल डीओएम कार्यान्वयन quirks के बारे में एक चर्चा में उलझा हुआ, Text.splitText और Element.normalise व्यवहार के बारे में एक दिलचस्प सवाल उठाने के साथ, और उन्हें कैसे व्यवहार करना चाहिए।क्या डोम विभाजन करना चाहिए और पहचान देने के लिए सामान्यीकृत करना चाहिए?
DOM Level 1 Core में, Text.splitText के रूप में दो पाठ नोड्स में कम से निर्दिष्ट ऑफसेट, परिभाषित किया गया है ...
ब्रेक इस पाठ नोड दोनों भाई बहन के रूप में वृक्ष में रखते हुए। इस नोड में केवल ऑफसेट बिंदु तक सभी सामग्री शामिल होती है। और एक नया टेक्स्ट नोड, जिसे इस नोड के अगले भाई के रूप में डाला गया है, ऑफसेट बिंदु पर और उसके बाद सभी सामग्री शामिल है।
मानक के अनुसार है ...
एक "सामान्य" प्रपत्र जहां केवल मार्कअप (जैसे, टैग, टिप्पणियाँ, प्रसंस्करण में इस तत्व के नीचे उप पेड़ से भरा गहराई में सभी पाठ नोड्स रखता है निर्देश, सीडीएटीए अनुभाग, और इकाई संदर्भ) पाठ नोड्स को अलग करता है, यानी, कोई आसन्न पाठ नोड्स नहीं हैं। इसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि दस्तावेज़ का डीओएम दृश्य वही है जैसा कि इसे सहेजा गया था और फिर से लोड किया गया था, और जब उपयोगी ऑपरेशन (जैसे एक्सपीइंटर लुकअप) पर निर्भर करता है तो एक विशेष दस्तावेज़ वृक्ष संरचना पर निर्भर होता है।
तो, अगर मैं युक्त "नमस्ते दुनिया" एक पाठ नोड, textNode में संदर्भित लेते हैं, और कर
textNode.splitText(3)
textNode अब सामग्री "हैलो" है, और एक नया भाई युक्त "दुनिया"
अगर मैं तो
textNode.parent.normalize()
textNode क्या है? विनिर्देश यह स्पष्ट नहीं करता है कि टेक्स्ट नोड को अभी भी इसके पिछले माता-पिता का बच्चा होना है, बस सभी आसन्न टेक्स्ट नोड्स (जिन्हें हटाया जाता है) को शामिल करने के लिए अपडेट किया गया है। ऐसा लगता है कि सभी आसन्न पाठ नोड्स को हटाने के लिए एक conforment व्यवहार होना प्रतीत होता है, और उसके बाद मूल्यों के संयोजन के साथ एक नया नोड फिर से बनाते हैं, जिससे टेक्स्ट नोड उस चीज़ को इंगित करता है जो अब पेड़ का हिस्सा नहीं है। या, हम textNode को उसी प्रारूप में अपडेट कर सकते हैं जैसे splitText में, इसलिए यह इसकी पेड़ की स्थिति को बरकरार रखता है, और एक नया मान प्राप्त करता है।
व्यवहार की पसंद वास्तव में काफी अलग है, और मुझे स्पष्टीकरण नहीं मिल रहा है, जो सही है, या यदि यह विनिर्देशन में केवल एक निरीक्षण है (यह स्तर 2 या 3 में स्पष्ट नहीं है)। क्या कोई डोम/एक्सएमएल गुरु वहां कुछ प्रकाश डाल सकता है?