2010-01-25 13 views
12

मैं चयन/रेंज ऑब्जेक्ट्स के साथ काम कर रहा हूं, और विशिष्ट चयन/रेंज सामान (डीओएम से भी अधिक) के लिए ब्राउज़र के बीच अविश्वसनीय असंगतता के कारण मैं सोच रहा था कि क्या ढांचा था इससे मुझे उनके माध्यम से जाने में मदद मिलेगी।जावास्क्रिप्ट चयन/रेंज ढांचा

+0

क्या आपने http://code.google.com/p/ierange/ देखा है? –

+0

Roatin, यह वही है जो मैं खोज रहा था! क्या आप इसे एक प्रश्न बना सकते हैं ताकि मैं आपको ऊपर उठा सकूं?:) –

+0

मेरा मतलब है उत्तर: डी –

उत्तर

8

(अनुरोध द्वारा एक जवाब किए गए;)

IERange पर एक नज़र डालें:

IERange एक फीचर पूरा इंटरनेट एक्सप्लोरर के लिए W3C DOM Ranges के कार्यान्वयन है, एक लिखने के लिए उपयोगकर्ताओं की अनुमति देता है का क्रॉस-ब्राउज़र संस्करण उनकी रेंज मैनिपुलेशन कोड।

का समर्थन करता है रेंज एपीआई:

  • document.createRange()
  • startContainer, startOffset, endContainer, endOffset, commonAncestorContainer, collapsed
  • setStart(), setEnd(), setStartBefore(), setStartAfter(), setEndBefore(), setEndAfter(), selectNode(), +०१२३८६३६५२

    • रेंज का समर्थन (वेबकिट शैली):, collapse()
    • insertNode(), surroundContents()
    • extractContents(), cloneContents(), deleteContents()
    • compareBoundaryPoints(), cloneRange(), createContextualFragment(), toString()

    चयन एपीआई का समर्थन करता है

  • window.getSelection()
  • addRange(), removeAllRanges(), getRangeAt(), toString()
+1

आईरेंज की सबसे बड़ी ताकत नोड्स और ऑफसेट्स (एक रेंज के रूप में) के संदर्भ में 'टेक्स्टरेंज' को व्यक्त करने और इस तरह परिवर्तित करने और 'टेक्स्टरेंज' में वापस ऑब्जेक्ट करने के लिए 'टेक्स्टरेंज' व्यक्त करने के लिए इसके एल्गोरिदम है। हालांकि, यह दोनों के बीच मतभेदों को पूरी तरह से दूर नहीं कर सकता है: उदाहरण के लिए, डीओएम में परिवर्तनों के जवाब में अंतर्निहित 'टेक्स्टरेंज' बदल जाएगा, जबकि 'आईरेंज' पर निर्मित इन परिवर्तनों को प्रतिबिंबित नहीं करेगा। उपयोगकर्ता चयन को रेंज के रूप में दर्शाया गया है, जो ब्राउज़र के नीचे हैं, के बीच विसंगतियां भी हैं। [जारी] –

+1

यह भी ध्यान दें कि 'IERange' बनाना अन्य ब्राउज़रों में डोम रेंज प्राप्त करने से काफी धीमा है। इनमें से कोई भी लाइब्रेरी की गलती नहीं है; यह बस समस्या की प्रकृति है। संक्षेप में, अबास्ट्रक्शन 'IERange' के देखभाल और ज्ञान के साथ सबसे अच्छा उपयोग दर्शाता है। –

1

fieldselection चयन/रेंज मैनिपुलेशन के लिए एक बहुत उपयोगी ज्वेलरी प्लगइन है।

+0

हालांकि टेक्स्टटेर और इनपुट के लिए केवल काम करता है। –

13

मैं एक नई रेंज/चयन पुस्तकालय लिखा है Rangy कि IERange लिए अवधारणा में समान है, लेकिन काफी एक बहुत आगे जाता है कहा जाता है। कोर बहुत अधिक पूर्ण है और currently available to download है। मैं वर्तमान में इसे बगफिक्सिंग और दस्तावेज कर रहा हूं और यह पूर्ण रिलीज से कुछ सप्ताह पहले ही होना चाहिए।

अपडेट 31 अगस्त 2011

Rangy अब स्थिर है और 1.2 संस्करण (downloads page) में है।

+0

रंगी टिम डाउन पर आपके महान काम के लिए धन्यवाद। मैं अपनी नई परियोजना में अपनी lib का उपयोग कर रहा हूं और पहले से ही आपको एक बग रिपोर्ट भेज चुका हूं। मुझे लगता है कि मेलिंग सूची बनाना एक अच्छा विचार होगा, ताकि मुद्दों/सुविधाओं पर चर्चा करना और नई सुविधाओं का सुझाव देना संभव हो (शायद पैच के साथ)। उदाहरण के लिए, मैं वर्तमान में प्रारंभ/अंत कंटेनर के बजाय आम पूर्वजों के लिए प्रारंभऑफसेट और एंडऑफसेट प्राप्त करने का प्रयास कर रहा हूं। यह एक सहायक विशेषता होगी जो मुझे विश्वास है। – Tom

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