Wir haben ein Problem bzgl. der Ajax-Login-Box im IE8 in unserem Template festgestellt. Beim Klicken auf “Mein Account” öffnet sich zunächst noch das Login-Fenster. Wenn man nun jedoch falsche Benutzerdaten eingibt, wird man automatisch auf eine neue Seite gelinkt ("/account/ajax_login"), die unformatiert die Login-Box mit der entsprechenden Fehlermeldung (“Ein Fehler ist aufgetreten!Ihre Zugangsdaten konnten keinem Benutzer zugeordnet werden”) ausgibt. Im Chrome und Firefox gibt es aber keine Probleme.
Welches Template verwendest du denn? Ist das eine Standard-Installation oder gibt es bereits Anpassugnen? Der IE läuft mit den Standard-Optionen? Oder ist hier irgendetwas speziell konfiguriert in den Internet-Sicherheitseinstellungen?
Wir verwenden ein eigenes Template. Allerdings bekommen wir beim Default-Template (was wir nicht angepasst haben) den gleichen Fehler im IE. Der IE läuft mit den Standardeinstellungen ohne jegliche Plugins,etc.
Ich habe jetzt das Problem nachvollziehen können. Meine erste Vermutung, dass es sich hier um ein Problem mit JSONP handelt, hat sich nicht bewahrheitet. Das Problem liegt am live()-Event Binder, welcher nicht per “submit” getriggert werden kann, zumindest im IE unter Version 8. http://forum.jquery.com/topic/ie-specif … ive-submit Wir haben das nun so gelöst, dass in diesem Fall der Trigger nicht auf den Submit-Event, sondern auf den Click Event des Buttons gesetzt wird. Hier der Fix: _default/frontend/_resources/javascript/jquery.shopware.js Zeile 2584 Original: //Extends jQuery's function namespace $.fn.checkout = function (settings) { if (settings) $.extend(config, settings); $(config.container + ' form').live('submit', function (event) { if(!$(this).hasClass('new\_customer\_form')) { event.preventDefault(); $.checkout.loginUser(this); } }); this.live('click', function (event) { event.preventDefault(); $.checkout.checkUser(this.href); }); return this };
Ersetzen durch: //Extends jQuery's function namespace $.fn.checkout = function (settings) { if (settings) $.extend(config, settings); $(config.container + ' form').live('submit', function (event) { if(!$(this).hasClass('new\_customer\_form')) { event.preventDefault(); $.checkout.loginUser(this); } }); $(config.container + ' .existing\_customer input[type^=submit]').live('click', function(event) { event.preventDefault(); var form = $(config.container + ' form[name^=existing\_customer]'); $.checkout.loginUser(form); }); this.live('click', function (event) { event.preventDefault(); $.checkout.checkUser(this.href); }); return this };
Diese Lösung ist auch bereits in unserem SVN, so dass diese Einzug in 3.5.3 erhält
Super, danke für die schnelle Hilfe! Nun funktioniert die Login-Box wieder im IE.