• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehler in script

Fr3ddy

Mitglied
Hi,
ich habe mir ein script zusammen gebaut, die erste variante funktioniert, wenn ich dann das script erweitern will wie in der zweiten variante bekomme ich einen fehler im IE7.
Variante 1:
HTML:
<script type="text/javascript">
//<=!=[=C=D=A=T=A=[
window.addEvent('load', function() {
(function(){
    var wrap,
        overview = document.getElement('div.gl');
            overview.getElements('div.wrapper_item').each(function(a, i){
                if (i % 5 == 0){
                    wrap && overview.adopt(wrap);
                    wrap = new Element('div.new');
                }
                wrap.adopt(a);
            });
    overview.adopt(wrap);
}());
});
window.addEvent('domready', function() {
var activeParent = null;
var myAccordion = new Fx.Accordion($$('.item'), $$('.hidden_content'), {
    display: -1,
    alwaysHide: true,
    onActive: function(toggler, element) {
        var size = element.getScrollSize();
          element.getParent('.new').morph({
          'padding-bottom': size.y+'px'
        });
        
        activeParent = element.getParent('.new');
      },
    
    onBackground: function(toggler, element) {
        if(element.getParent('.new') != activeParent) {
            element.getParent('.new').morph({
              'padding-bottom': '0px'
            });
        }
      },
    
    onComplete: function(toggler, element) {
            activeParent = null;
      }
});
});
//]=]=>  
</script>

Variante 2:

HTML:
<script type="text/javascript">
<!--
 var viewportwidth;
 var viewportheight;
 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
 if (typeof window.innerWidth != 'undefined')
 {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
 }
// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
 else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
 }
 // older versions of IE
 else
 {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
 }

//<=!=[=C=D=A=T=A=[
 if (viewportwidth <= '766') {
        window.addEvent('load', function() {
                    (function(){
                        var wrap,
                            overview = document.getElement('div.gl');
                                overview.getElements('div.wrapper_item').each(function(a, i){
                                    if (i % 2 == 0){
                                        wrap && overview.adopt(wrap);
                                        wrap = new Element('div.new');
                                    }
                                    wrap.adopt(a);
                                });
                        overview.adopt(wrap);
                    }());
                    });
  } else {
        
        window.addEvent('load', function() {
            (function(){
                var wrap,
                    overview = document.getElement('div.gl');
                        overview.getElements('div.wrapper_item').each(function(a, i){
                            if (i % 5 == 0){
                                wrap && overview.adopt(wrap);
                                wrap = new Element('div.new');
                            }
                            wrap.adopt(a);
                        });
                overview.adopt(wrap);
            }());
            });
        
  }


window.addEvent('domready', function() {
var activeParent = null;
var myAccordion = new Fx.Accordion($$('.item'), $$('.hidden_content'), {
    display: -1,
    alwaysHide: true,
    onActive: function(toggler, element) {
        var size = element.getScrollSize();
          element.getParent('.new').morph({
          'padding-bottom': size.y+'px'
        });
        
        activeParent = element.getParent('.new');
      },
    
    onBackground: function(toggler, element) {
        if(element.getParent('.new') != activeParent) {
            element.getParent('.new').morph({
              'padding-bottom': '0px'
            });
        }
      },
    
    onComplete: function(toggler, element) {
            activeParent = null;
      }
});
});
//]=]=>  
</script>

Wo liegt in variante 2 der fehler?


LG & danke

Edit: Die Fehlerkonsole vom IE7 sagt:
SCRIPT5007: Unable to get property 'getElements' of undefined or null reference
Bei der zeile:
HTML:
overview.getElements('div.wrapper_item').each(function(a, i){
UND
HTML:
SCRIPT1002: Syntax error
in dieser Zeile:
</script>
 
Zuletzt bearbeitet:
Code:
getElement()

und

Code:
getElements()

gibt es nicht (es sei denn in deinem Script ist eine Funktion mit diesen Namen irgendwo deklariert, aber ich sehe sie nicht). Du musst dich zwischen einem von denen entscheiden:
https://developer.mozilla.org/en-US/docs/Web/API/element.getElementsByTagName
https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName
https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById
...

Außerdem frage ich mich was das hier sein soll:
Code:
//<=!=[=C=D=A=T=A=[

Ich kenne das nur so: javascript - What is CDATA in html? - Stack Overflow
 
Ja, es handelt sich hier dabei um das framework mootools, wollte mich da mal einarbeiten.

Es funktioniert halt nicht mehr richtig, seit dem ich die if anweisung bezüglich der breite eingebaut habe.
 
Habe jetzt noch mal unnötigen code und commentare unter anderem auch dieses cdata entfernt und nun funktioniert es, Danke.
 
Zurück
Oben