IE में Script.aculo.us Autocompleter समस्या

वोट
6

मैं IE में Script.aculo.us Autocompleter नियंत्रण के साथ एक समस्या के साथ संघर्ष कर रहा हूँ (मैं इसे IE6 और 7 में की कोशिश की है)। सुझाव पहले वर्ण के लिए प्रकट करने के लिए के बाद पेज लोड किया गया है पाठ बॉक्स में दर्ज किया गया है असफल। कि आरंभिक असफलता के बाद, नियंत्रण एकदम सही ढंग से काम करता है।

मैं सत्यापित किया है कि सुझाव डेटा सर्वर ठीक से लौटे है; समस्या, सुझाव तत्व की स्थिति से कोई लेना देना कुछ है के रूप में पृष्ठ पर अन्य अपेक्षाकृत तैनात तत्व पल है कि आप सुझाव प्रकट करने के लिए उम्मीद थी पर स्थिति से बाहर ले जाने के लिए प्रकट होता है।

किसी को भी इस तरह के एक समस्या के बारे में सुना या इसे ठीक करने पर कोई सुझाव है?

संपादित: क्रिस के जवाब में, मैं partialChars पैरामीटर 1 पर सेट है और नियंत्रण सभी अन्य ब्राउज़र मैं कोशिश की है, जो फ़ायरफ़ॉक्स, सफ़ारी, ओपेरा, और Chrome के नवीनतम संस्करण हैं में काम करता है। मैं शायद पहली जगह में है कि स्पष्ट कर दिया जाना चाहिए था। धन्यवाद।

20/09/2008 को 15:32
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


6 जवाब

वोट
2

बस IE में या सभी ब्राउज़रों में अपनी समस्या है? पहले चार की उपेक्षा कर वास्तव में Autocompleter के लिए डिफ़ॉल्ट है। controls.js में, वहाँ एक वर्ग Autocompleter.Local कहा जाता है जो एक क्षेत्र कहा जाता partialChars जो 2. के लिए चूक है कि क्षेत्र के लिये दस्तावेज कहना है है:

// - partialChars - कितने वर्ण को ट्रिगर से पहले प्रवेश करने के लिए
(minChars, जो परिभाषित करता है के विपरीत एक आंशिक मैच //
// कितने वर्ण किसी भी मैच करना आवश्यक है
// सभी)। 2 से चूक।

20/09/2008 को 17:17
का स्रोत उपयोगकर्ता

वोट
1

मैं अभी भी वास्तव में इस समस्या का कारण क्या पता नहीं है, लेकिन मैं इसे दौर पाने के लिए एक हैक साथ आने के लिए प्रबंधित किया है। विचार प्रसंस्करण कि सामान्य रूप से पहले वर्ण प्रविष्टि पृष्ठ लोड होने यह रास्ते से हट जाओ करने के लिए पर विफलता का कारण बनता प्रदर्शन करने के लिए है:

new Ajax.Autocompleter(textInputId, suggestionsHolderId, suggestionsUrl, params);

//Hack
Event.observe(window, 'load', function()
{
    try
    {
        Position.clone($(textInputId), $(suggestionsHolderId),
            { setHeight: false, offsetTop: $(textInputId).offsetHeight});
    }
    catch(e){}
});
23/09/2008 को 11:09
का स्रोत उपयोगकर्ता

वोट
5

मैं वास्तव में ठीक उसी समस्या हो रही है। समस्या केवल IE में होता है (यह भी 8.0 बीटा में)

दोनों फ़ायरफ़ॉक्स और क्रोम मैंने कोशिश की, कोई समस्या नहीं क्या-तो-कभी की है।

दूसरों के अनुसार इस HTML फ़ाइल में doctype घोषणा के कारण है। यहाँ देखें: http://prototype.lighthouseapp.com/projects/8887/tickets/32-ajax-autocomplete-in-ie-with-doctype

बग भी माणिक डेवलपर बोर्डों पर एक टिकट मिल गया है: http://dev.rubyonrails.org/ticket/11051

दोनों लिंक समस्या को ठीक करने के लिए समाधान मिल गया है।

उम्मीद है कि बग प्रोटोटाइप / scriptaculous के अगले संस्करण में तय हो जाएगा :)

22/01/2009 को 14:17
का स्रोत उपयोगकर्ता

वोट
3

हैक के लिए बहुत धन्यवाद। मैं इस अपने आप का इस्तेमाल किया है, लेकिन यह संशोधित तो यह केवल जब Ajax.Autocompleter निम्नलिखित कार्य करके प्रयोग किया जाता है कहा जाता है।

function positionAuto(element, entry) {
    setTimeout( function() {
      Element.clonePosition('choices_div', 'text_element', {
      'setWidth': false,
      'setHeight': false,
      'offsetTop': $('text_element').offsetHeight
    } );
  }, 300);
  return entry;
}

new Ajax.Autocompleter('text_element', 'choices_div', [url to web service], {
  paramName: 'fulltext',
  minChars: 2,
  callback: positionAuto, // See above
  [etc...]

चूंकि कॉलबैक कहा जाता है बस से पहले वास्तविक अनुरोध किया जाता है, स्थिति DIV सिर्फ इतना है कि इस समय सबसे समझ में आता है। और यह सुनिश्चित करें कि भले ही खिड़की आकार दिया या स्क्रॉल किया जाता है, DIV सही ढंग से रखा जाता है कर देगा। क्या खेदजनक है कि यह लगातार काम करने के लिए प्राप्त करने के लिए है, मैं एक में लपेट करना पड़ा "setTimeout ()"। अलग समय सेटिंग्स है कि बहुत है, लेकिन अगर वहाँ एक कम समय समाप्ति सीमा है कि काम करता है, मैं जानना चाहते हैं के साथ प्रयोग नहीं किया।

आईई 8 और 7 पर परीक्षण किया और बहुत अच्छी तरह से काम करता है। और साथ ही साथ अन्य वास्तविक ब्राउज़रों के साथ काम करता है। उम्मीद है कि यह कुछ कोडर सिर दर्द की बचत होती है जब इस के साथ काम कर।

04/06/2009 को 10:09
का स्रोत उपयोगकर्ता

वोट
1

यह एक पैच कि काम करता है, लेकिन अभी तक शामिल नहीं किया गया है के साथ एक ज्ञात बग है। आप यहाँ इसके बारे में अधिक पढ़ सकते हैं: https://prototype.lighthouseapp.com/projects/8886-prototype/tickets/618-getoffsetparent-returns-body-for-new-hidden-elements-in-ie8-final#ticket- 618-9

03/03/2010 को 09:52
का स्रोत उपयोगकर्ता

वोट
2

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

div.acwrap {
  position: absolute;
  height: 40px;
}

div.autocomplete {
  position: relative !important;
  top: -5px  !important;
  left: 0px !important;
  width:250px;
  margin:0;
  padding:0;
}

इस प्रकार मेरी HTML कोड में मैं कक्षाओं प्रयोग किया है:

<div class="acwrap">
 <div id="autocomplete_choices" class="autocomplete">
 </div>
</div>

विचार यहाँ जन्म लिया है: Scriptaculous / प्रोटोटाइप आईई 8 स्वत: पूर्ण गायब समस्या

25/08/2011 को 16:36
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more