2016-09-12 5 views
0

Ich verwende Magento CE 1.9 für mein lokales Projekt. Das Projekt funktioniert in allen Browsern außer IE11. Wenn die Seite geladen wird, wird der folgende Fehler angezeigt:Unbekannter Fehler in Internet Explorer 11

SCRIPT16389: Unspecified error.

In Inspect Element Abschnitt kommt der Fehler in HEAD-Tag der Webseite. Ich habe sogar das Logbuch überprüft, nichts gefunden. Ich weiß nicht, welcher Javascript/Jquery-Code dieses Problem verursacht.

Antwort

0

Nach dem Debuggen für Stunden fand ich, von wo das Problem kam. Es kam aufgrund der Funktionen.js für die Graustufen Effekte auf die Bilder. Die Graustufenfilter funktionieren nicht auf IE10 und IE10 +. Die Funktion, die das Thema "Funktion grayscaleIE10 (src)" verursacht:

// Grayscale images only on browsers IE10+ since they removed support for CSS grayscale filter 
if (getInternetExplorerVersion() >= 10){ 
    jQuery('.grscale').each(function(){ 
     var el = jQuery(this); 
     el.css({"position":"absolute"}).wrap("<div class='img_wrapper' style='display: inline-block'>").clone().addClass('img_grayscale').css({"position":"absolute","z-index":"5","opacity":"0"}).insertBefore(el).queue(function(){ 
      var el = jQuery(this); 
      el.parent().css({"width":this.width,"height":this.height}); 
      el.dequeue(); 
     }); 
     this.src = grayscaleIE10(this.src); 
    }); 

    // Quick animation on IE10+ 
    jQuery('.grscale').hover(
     function() { 
      jQuery(this).parent().find('img:first').stop().animate({opacity:1}, 200); 
     }, 
     function() { 
      jQuery('.img_grayscale').stop().animate({opacity:0}, 200); 
     } 
    ); 

    function grayscaleIE10(src){ 
     var canvas = document.createElement('canvas'); 
     var ctx = canvas.getContext('2d'); 
     var imgObj = new Image(); 
     imgObj.src = src; 
     canvas.width = imgObj.width; 
     canvas.height = imgObj.height; 
     ctx.drawImage(imgObj, 0, 0); 
     var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height); 
     for(var y = 0; y < imgPixels.height; y++){ 
      for(var x = 0; x < imgPixels.width; x++){ 
       var i = (y * 4) * imgPixels.width + x * 4; 
       var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2])/3; 
       imgPixels.data[i] = avg; 
       imgPixels.data[i + 1] = avg; 
       imgPixels.data[i + 2] = avg; 
      } 
     } 
     ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height); 
     return canvas.toDataURL(); 
    }; 
}; 

Irgendwelche Ideen, wie diese Funktion zu modifizieren für IE10 & IE10 +? Ich habe auch auf die anderen Beispiele und Demos für den Graustufeneffekt hingewiesen. Ich hatte gehofft, wenn es eine Möglichkeit gibt, diese spezielle Funktion zu ändern, ohne js und CSS-Dateien zu ändern.

Verwandte Themen