[gelöst] Javascript-Fehler auf Produktseite(n)

Hallo zusammen, im InternetExplorer bekomme ich im Frontend auf allen getesteten Artikeldetail-Seiten den folgenden JavaScript-Fehler (exemplarisch): — Details zum Fehler auf der Webseite Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Zeitstempel: Fri, 18 Nov 2011 19:48:12 UTC Meldung: Objekt erwartet Zeile: 204 Zeichen: 1 Code: 0 URI: http://www.martz-mailorder.de/schuhe-un … el-schwarz — In der betreffenden Zeile findet sich der folgende Code: addEventListener(“load”, function() { setTimeout(function() { window.scrollTo(0, 1) }, 0) }, false); Den Fehler erkennt man wie folgt: unten in der Statuszeile des IE ist unten links ein ACHTUNG-Symbol (gelbes Dreieck mit Ausrufezeichen) zu sehen. Klickt man da doppelt drauf, erhält man das Dialogfeld “Die Website enthält Fehler und funktioniert möglicherweise nicht ordnungsgemäß”. Darunter in der Liste steht dann “Objekt erwartet”, sowie der “Code 0”, die Zeilennummer und den “abgeschnittenen” URI. Wenn man dann auf den Button “Fehlerdetails kopieren” klickt und dann im Editor auf Einfügen geht, erhält man den obenstehenden Fehlertext. So wie es ausschaut sollte das eigentlich alle Shops betreffen (zumindest v3.5.5), nicht nur unseren, kann das jemand bestätigen? Gibt es eine Lösung? Viele Grüße Kai

Hi, der IE sollte man verbieten! :sunglasses: Ich bekomme bei Dir keine Fehlermeldung oder ein Achtung-Symbol im IE.

Welchen IE benutzt Du? IE8 + 9 geben keine Fehler aus. Sind vielleicht Deine Browsereinstellungen. Grüße

[quote=„martzmailorder“]In der betreffenden Zeile findet sich der folgende Code: addEventListener(„load“, function() { setTimeout(function() { window.scrollTo(0, 1) }, 0) }, false);[/quote] Das Problem ist, dass der &%!§ IE die "addEventListener"-Funktion nicht kennt, und stattdessen mit der "attachEvent"-Funktion gebeten werden will. Eine Cross-Browser-Lösung für das Problem sieht so aus: addEvent(function() { setTimeout(function() { window.scrollTo(0, 1) }, 0) }, false),'load'); [code] function addEvent(obj,type,fn) { if (obj.addEventListener) { obj.addEventListener(type,fn,false); return true; } else if (obj.attachEvent) { obj['e'+type+fn] = fn; obj[type+fn] = function() { obj['e'+type+fn]( window.event );} var r = obj.attachEvent('on'+type, obj[type+fn]); return r; } else { obj['on'+type] = fn; return true; } }[/code] Oder (besser), da wir ja schon jQuery zur Verfügung haben: [code](document).ready(function(){ setTimeout(function() { window.scrollTo(0, 1) }, 0) }, false); });[/code] EDIT: Oder die Funktion einfach weg lassen, da sie nichts wirklich sinnvolles macht: sie positioniert das Fenster auf die Position 1 Pixel tiefer, als es normalerweise wäre…

[quote=“ErikBrinx”]Welchen IE benutzt Du? IE8 + 9 geben keine Fehler aus. Sind vielleicht Deine Browsereinstellungen. Grüße[/quote] Es sind sicher die Browsereinstellungen… Aber dadurch, dass man das Melden von Javascript-Fehlern deaktiviert, verschwindet der Fehler ja nicht…

Hallo, auch ich bin grad’ auf diesen Fehler gestoßen. Er tritt anscheinend nur unter Windows XP auf, unter Windows 7 funktioniert es. Nur IE8 ist betroffen (Warum steht in der Fehlermeldung eigentlich Benutzer-Agent: Mozilla/4.0??). Er tritt bei mir auch nur auf, wenn ich eines der folgenden PlugIns aktiviere: Sexybookmarks, Google+ und Facebook. Grade das Facebook-Plugin ist mir sehr wichtig. Wie kann man das Problem lösen? Ich möchte ja weder das Plugin deaktivieren noch alle WinXP-User auschließen. Durch den Fehler werden die Tabs auf der Artikel-Detailseite nicht mehr angezeigt und - was am schlimmsten ist: Man kann den Artikel nicht mehr in den Warenkorb legen. Ach und komischerweise tritt der Fehler beim ersten Besuch der Seite manchmal nicht auf. Startet man den Browser neu, tritt der Fehler plötzlich auf. So sieht die Fehlermeldung bei mir aus: [quote]Details zum Fehler auf der Webseite Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.2; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; BRI/2) Zeitstempel: Sun, 20 Nov 2011 10:58:27 UTC Meldung: Failed Zeile: 82 Zeichen: 18 Code: 0 URI: http://www.happyhooping.de/templates/_d … cript/jque ry-1.4.2.js Meldung: Failed Zeile: 18 Zeichen: 45 Code: 0 URI: http://connect.facebook.net/de_DE/all.js#xfbml=1 Meldung: Failed Zeile: 18 Zeichen: 45 Code: 0 URI: http://connect.facebook.net/de_DE/all.js#xfbml=1 Meldung: Failed Zeile: 213 Zeichen: 6 Code: 0 URI: https://plus.google.com/_/apps- static/_/js/widget/gcm_ppb,googleapis_client,plusone/rt=j/ver=BsnT3tGSX-U.de./sv=1/am=! W_gXXLnZrrYgVlks/d=1/ Meldung: Failed Zeile: 213 Zeichen: 6 Code: 0 URI: https://plus.google.com/_/apps- static/_/js/widget/gcm_ppb,googleapis_client,plusone/rt=j/ver=BsnT3tGSX-U.de./sv=1/am=! W_gXXLnZrrYgVlks/d=1/ Meldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht. Zeile: 85 Zeichen: 17 Code: 0 URI: http://www.happyhooping.de/engine/Shopw … asketAnima tion/view/frontend/_resources/javascript/basket.js Meldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht. Zeile: 85 Zeichen: 17 Code: 0 URI: http://www.happyhooping.de/engine/Shopw … asketAnima tion/view/frontend/_resources/javascript/basket.js [/quote]

Da ich mir nicht ganz sicher bin, ob es wirklich die gleichen Fehler sind, mache ich nochmal einen neuen Beitrag dazu auf. Hoffe das ist Regelkonform :wink:

Nur eine Vermutung! Ich hatte beim Update auf 3.5.5 auch Javascript-Fehler in der Artikeldetail-Seite - auch auf WinXP/IE8. Nachdem ich diese Änderung vorgenommen hatte, war der Fehler weg: allgemeines-f2/update-3-5-5-problem-artikel-in-wk-legen-ie6-t4425.html#p24076 Die erste Fehlermeldung in der jquery-1.4.2.js, scheint auch auf ein Problem mit dem JQuery-text-selector und IE hinzuweisen. Das war bei mir das Problem und hatte nichts mit den Plugins, die du erwähnt hast, zu tun. Aber wie gesagt … nur eine Vermutung!

1 „Gefällt mir“

Vielen Dank - genau das war es, jetzt funktioniert alles. :slight_smile: Habe mir mal 2-3 Shops von Forenusern angeschaut, die auch eines der Plugins benutzen - bei allen tritt der Fehler auf… Komisch, das dieses bisher keinem aufgefallen ist. Benutzen sowenige Leute noch XP+IE8, oder tritt der Fehler nicht auf allen PCs auf?

Hallo zusammen, und danke schonmal für die vielen Antworten. @artep: Jep, sehe ich ähnlich. Oder eben eine Zwangskompatibilisierung durchführen (o; Interessanterweise kommen die Fehler auch nicht immer, aber immer mal wieder. Dabei ist unerheblich ob IE8 oder 9 und ob Win XP oder 7. @ErikBrinx: MSIE 8.0 Browsereinstellungen: Standard. Benutze nämlich eigentlich ausschließlich den Firefox. @avenger: Klingt beides nach einer Lösung. Jetzt muß ich nur noch die Datei finden, aus der der fehlerhafte Schnipsel in den Code kommt. Eine Explorer-Suche nach dem Inhalt „window.scrollTo(“ innerhalb des heruntergeladenen Web-Ordners brachte nur *.js-Dateien ans Licht, welche es aber meiner Auffassung nach nicht sein können. Ich habe da eher ein Plugin im Verdacht, z.B. das Mobile-Plugin. Werd ich mal alles durchprobieren müssen, da eine Inhaltssuche mit Bordmitteln nicht wirklich zuverlässig zu funktionieren scheint. Ne Idee? Derzeit installierte Plugins: - Shopware Mobile - Klarna Payment Module - Kundendaten im Account - Erweiterter Variantenwechsel - Shopware Update Plugin - Rhinos Media google Plus Modul (deaktiviert) - TopsellerListing - Hersteller Logo einblenden - XELASexy Bookmarks - Basket Animation (deaktiviert) - AdvancedMenu - Facebook (deaktiviert) @digitalwaagen123: Das scheint ein anderes Problem zu sein. Habe mir übrigens mal die von Dir genannten URIs angesehen, die meisten davon scheint es nicht zu geben, 404 (Die google±Fehlerseite ist echt nicht schlecht (o; Wenn die Lösung aus dem Forumartikel von radox geholfen hat, spricht das wohl auch für ein anderes Problem. Werde jetzt erstmal weiter nach dem Scriptschnipsel suchen um es dann erstmal zu entfernen. Falls jemand einen Hinweis hat: Gerne (o; Viele Grüße Kai

Hallo, ok ich habe nicht wirklich Ahnung davon und lerne noch, aber folgendes ist mir aufgefallen (und ich hoffe, ich nerve nicht, falls ich “Blödsinn” schreibe). Vielleicht hilft es aber beim anstoßen neuer Denkprozesse… - der Fehler tritt bei mir - beim Aufruf Deiner angegebenen URL in Deinem Shop - ausschließlich unter Windows XP auf, nicht unter Windows 7. - als ich eben unter Windows 7 mit Firefox auf Deine Seite ging, hing er sehr lange beim laden des Klarna-PlugIns fest. Im Hintergrund hatte ich eine Java-Anwendung laufen, die dabei abgestürzt ist. Nachdem diese passiert war, lud er Deine Seite weiter. Wahrscheinlich Zufall, aber vlt. doch diesen Hinweis wert? - Unter WinXP + Firefox zeigt mir die Fehlerkonsole folgendes an: Lezte Fehlermeldung ist wieder Klarna…

Hallo zusammen, so, ich habe nun das Shopware-Mobile-Plugin deaktiviert, das problematische AddEventListener ist nun raus und somit auch der JavaScript-Fehler unter win7, IE 9. Alle jene, welche überlegen, das Mobile-Plugin zu verwenden, sollten derzeit also Abstand davon nehmen, da das im schlimmsten Fall zu weniger Conversions führen kann, da der betroffene Internet-Explorer doch noch einen recht großen Marktanteil hat, und in diesem das “In den Warenkorb”-Legen dann oft nicht klappt. Nun verbleibt bei mir ein weiterer Javascriptfehler, jedoch in IE 8 unter win7 64bit bestehen: ------ Details zum Fehler auf der Webseite Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2) Zeitstempel: Thu, 24 Nov 2011 09:36:25 UTC Meldung: Failed Zeile: 82 Zeichen: 18 Code: 0 URI: http://www.martz-mailorder.de/templates … y-1.4.2.js ------ Ich werde nun prüfen, inwieweit das DER Fehler ist, welcher in dem weiter oben geposteten Threat behandelt wurde. Möglicherweise läßt sich das Problem dann auf die dort beschriebene Weise lösen. Gruß Kai

Hi Digitalwaage, also erstmal danke für Deine Mühe. Soweit ich sehen kann, sind alle Fehlermeldungen CSS-Meldungen. Die sind zwar auch nicht schön, haben aber, denke ich, wenig mit den Javascript-Fehlern zu tun. Der aktuelle Fehler sorgt unter IE8 (bei mir nur unter windows 7 getestet) dafür, daß der Besucher der Website die Variation über das Modul “Erweiterter Variantenwechsel” nicht mehr auswählen kann… Viele Grüße aus Oberhausen Kai

ok, also der andere Threat hilft nicht weiter. Dort geht es ausschließlich um ein Problem beim IE6, der Fehler scheint ein anderer zu sein. Ich habe mir also die betreffende JS-Datei mal angesehen, „leider“ ist sie kompromiert, worunter die Lesbarkeit doch arg leidet. In der betreffenden Zeile 82 findet sich folgendes: text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type} Die Fehlermeldung verweist auf Zeile 18, also wahrscheinlich auf return"text"===g.type Da das relativ wenig sagt, habe ich mir einen ganzen Code-Block genommen und versucht, diesen wieder lesbar zu machen. Dabei kam folgendes heraus: ------- snip --------- var n=k.selectors={ order:[„ID“,„NAME“,„TAG“], match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\.)+)/, CLASS:/.((?:[\w\u00c0-\uFFFF-]|\.)+)/, NAME:/[name=[’"]*((?:[\w\u00c0-\uFFFF-]|\.)+)[’"]*]/, ATTR:/[\s*((?:[\w\u00c0-\uFFFF-]|\.)+)\s*(?:(\S?=)\s*([’"]*)(.*?)\3|)\s*]/, TAG:/^((?:[\w\u00c0-\uFFFF*-]|\.)+)/, CHILD:/:(only|nth|last|first)-child(?:((even|odd|[\dn±]*)))?/, POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:((\d*)))?(?=[^-]|$)/, PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\.)+)(?:(([’"]?)((?:([^)]+)|[^()]*)+)\2))?/}, leftMatch:{}, attrMap:{„class“:„className“,„for“:„htmlFor“}, attrHandle:{href:function(g){return g.getAttribute(„href“)}}, relative:{"+":function(g,h){var l=typeof h===„string“,m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m":function(g,h){var l=typeof h===„string“;if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},
ID:function(g){return g[1].replace(/\/g,"")},
TAG:function(g){return g[1].toLowerCase()},

CHILD:function(g){if(g[1]===„nth“){var h=/(-?)(\d*)n((?:+|-)?\d*)/.exec(g[2]===„even“&&„2n“||g[2]===„odd“&&„2n+1“||!/\D/.test(g[2])&&„0n+“+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},
ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" „+g[4]+“ „;return g},
PSEUDO:function(g,h,l,m,q){if(g[1]===„not“)if((f.exec(g[3])||“").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},
POS:function(g){g.unshift(true);return g}},
filters:{
enabled:function(g){
return g.disabled===false&&g.type!==„hidden“
},
disabled:function(g){
return g.disabled===true
},
checked:function(g){
return g.checked===true
},
selected:function(g){
return g.selected===true
},
parent:function(g){
return!!g.firstChild
},
empty:function(g){
return!g.firstChild
},
has:function(g,h,l){
return!!k(l[3],g).length
},
header:function(g){
return/h\d/i.test(g.nodeName)
},

text:function(g){
  return"text"===g.type
},
radio:function(g){
  return"radio"===g.type
},
checkbox:function(g){
  return"checkbox"===g.type
},
file:function(g){
  return"file"===g.type
},
password:function(g){
  return"password"===g.type
},
submit:function(g){
  return"submit"===g.type
},
image:function(g){
  return"image"===g.type
},
reset:function(g){
  return"reset"===g.type
},
button:function(g)

… usw.
---- / snip ----

Es sieht also doch so aus, als ginge es hier um die Selektoren, und im speziellen um den Text-Selektor…

Oh man… vermutlich ist also für dieses Problem die Lösung von radox doch die richtige. Leider ist aus dem Threat nicht ersichtlich, in welcher Datei die entsprecheden Änderungen vorgenommen werden müssen. Für einen entsprechenden Hinweis wäre ich sehr dankbar.

Viele Grüße

Kai

Hallo zusammen, hallelujah, das zweite Problem ist nun also auch gelöst: Es handelte sich hierbei tatsächlich um das Problem aus dem folgenden Threat, obwohl es eigentlichnur den IE6 betreffen sollte: allgemeines-f2/update-3-5-5-problem-artikel-in-wk-legen-ie6-t4425.html#p24076 Danke also an radox für den richtigen Hinweis. Was in dem Threat nur erraten werden kann, ist der Name der Datei in welcher die Änderungen durchzuführen sind. Die Datei ist die folgende: \templates_default\frontend_resources\javascript\jquery.shopware.js Für alle also, die das gleiche Problem haben: Einfach den Quelltext aus dem anderen Threat in die jquery.shopware.js kopieren (alte Zeile 290 bis 478 überschreiben, wie von Stefan Pohl beschrieben), hochladen, fertig -> Problem gelöst. Oder eben warten bis zum nächsten Update (o; Vielen lieben Dank an alle Helfer!

Hallo, ja scheint nicht nur beim IE6 so zu sein, bei mir war es ja auch der IE8… Die Datei liegt hier: \templates_default\frontend_resources\javascript\jquery.shopware.js Grüße Heiko