2009-08-15 17 views
5

तो सबसे पहले मैं जेएस सीख रहा हूं और लाइब्रेरी का उपयोग नहीं करूँगा जब तक कि मुझे वह सब कुछ पता न हो।जावास्क्रिप्ट आईई और getElementsByClassName समस्याएं

http://www.tombarrasso.com/search/

इसके साथ ही कहा क्यों पृथ्वी पर मेरी कोड < IE 7 में काम नहीं करता है, फ़ायरफ़ॉक्स < 3, आदि? सफारी 4 सही है, फ़ायरफ़ॉक्स 3.5 बहुत अच्छा है, आदि मैं रॉबर्ट न्यमान से फ़ंक्शन getElementsByClassName का उपयोग कर रहा हूं।

यह ओएस एक्स (शराब के माध्यम से) पर मेरे आईई 6 में कोई त्रुटि उत्पन्न नहीं करता है। अजाक्स अनुरोध ठीक है, लेकिन आईडी = "एक" और वर्ग = "स्क्रोलर" के साथ प्रारंभिक div होना चाहिए, लेकिन ऐसा नहीं है। मैं बस इतना निराश हो रहा हूं।

धन्यवाद,

  • टॉम
+0

आप पोस्ट कर सकता कोड? यह सुनिश्चित नहीं है कि इसे कहां मिलना है: डी –

+0

http://www.tombarrasso.com/search/x.js – Tom

+1

बाहर निकलता है .सेट एट्रिब्यूट ("कक्षा", "स्क्रोलर") कुछ आईईएस के लिए अच्छा नहीं है, इसलिए मुझे भी .setAttribute ("className", "scroller") पर। इसके अतिरिक्त मुझे एक लाइन में सभी .appendChild() जोड़ने की आवश्यकता है, क्योंकि आईई इसे एक से अगले तक नहीं रखता है। लेकिन आईई 8 इन्हें आईई 6 और 7 के रूप में नहीं देखता है। – Tom

उत्तर

4

व्यक्तिगत रूप से, मैं तो बस, jQuery का उपयोग के रूप में यह पहले से ही ब्राउज़र संगतता समस्याओं को आप में चल रहे है होगा।

यह सब सीखना ठीक है; लेकिन जब कार्यान्वयन संगतता को संभालने की बात आती है तो यह आपके लिए बेहतर होता है, आईएमएचओ। ऐसी कुछ चीजें हैं जिनकी मुझे परवाह नहीं है: पी

2

आईई 8 त्रुटि देता है - "ऑब्जेक्ट संपत्ति या विधि का समर्थन नहीं करता है" जब हम जावास्क्रिप्ट में getElementsByClassName का उपयोग करते हैं। इसके बजाए इसे आजमाएं।

if (document.getElementsByClassName) { 
    var obj = document.getElementsByClassName('classA'); 
} 
0

मैंने उन पिछड़े ग्राहकों को यानी 7 के समर्थन में मेरी समस्या को ठीक करने के लिए jQuery का उपयोग किया।

ओल्ड:

var editrow = grid.get_element().getElementsByClassName("rgEditRow")[0]; 

नई:

var editrow = $(".rgEditRow", grid.get_element())[0]; 
8

..or आप एक बेहतर समाधान के रूप में उपयोग कर सकते हैं ...

if (typeof document.getElementsByClassName!='function') { 
    document.getElementsByClassName = function() { 
     var elms = document.getElementsByTagName('*'); 
     var ei = new Array(); 
     for (i=0;i<elms.length;i++) { 
      if (elms[i].getAttribute('class')) { 
       ecl = elms[i].getAttribute('class').split(' '); 
       for (j=0;j<ecl.length;j++) { 
        if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) { 
         ei.push(elms[i]); 
        } 
       } 
      } else if (elms[i].className) { 
       ecl = elms[i].className.split(' '); 
       for (j=0;j<ecl.length;j++) { 
        if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) { 
         ei.push(elms[i]); 
        } 
       } 
      } 
     } 
     return ei; 
    } 
} 
संबंधित मुद्दे