2011-03-15 7 views
13

Internet Explorer 9 fue lanzado hoy, y decidí consultar algunos sitios de Magento que creamos en los últimos meses para ver si todo continúa funcionando con la nueva versión.Sitios de Magento en IE9, errores de prototipo

Pero desafortunadamente no es así. Me encontré con un problema particular causado por la versión de la biblioteca de prototipos que se envía con Magento, versión 1.6.0.3.

Parece que los eventos de cancelación en eventhandlers no funcionan.
Por ejemplo, si intenta iniciar sesión en una tienda de Magento, y deja los campos de inicio de sesión y contraseña vacíos, IE9 envía el formulario incluso si hubo errores, y los errores desaparecen después de la actualización.
Creo que es un problema bastante grande.

Entonces mi pregunta es: ¿cómo podemos lidiar con este problema? Veo un par de maneras de lidiar con esto:

  • Espere a que Magento para liberar una nueva versión con correcciones
  • Actualiza la biblioteca de prototipo a la última versión que probablemente ya se ha solucionado el problema
  • lío alrededor en la biblioteca existente e intente reparar el fallo en no

a la espera de una nueva versión de Magento no es una buena idea porque es probable que tome un par de semanas antes de que haya uno, y porque causará un todo muchos otros problemas si está ejecutando una versión muy antigua de M agento.
Actualizar la última biblioteca de prototipos es probablemente la mejor idea, pero ¿todo en Magento continuará funcionando con la última versión del prototipo? ¿Alguien tiene alguna experiencia con esto?

¿Cuál es la opinión de todos acerca de este problema? ¿Alguna otra idea que no sea la mía?

+0

estoy corriendo Magento 1.3.3 y tengo acaba de caer en el prototipo 1.7.0 y se ha solucionado el problema, y ​​hasta ahora no he visto ningún problema. Dedos cruzados. – JonB

Respuesta

0

Como una solución rápida, creo que tomaría el mismo enfoque que defiende, y actualizar Prototype a una versión que no contenga este problema. Sin embargo, Magento vendrá con un parche (esto es demasiado grande para ignorarlo), y en ese punto, sería conveniente deshacer los cambios y aplicar el parche que proporcionan para mantenerse en línea con las actualizaciones normales.

Rara vez vale la pena cavar manualmente en las partes internas de JS de Magento, por lo que esa opción me parece un poco desagradable. Probablemente haya varios lugares donde se usa esta semántica y es posible que te pierdas algunos de ellos.

Espero que ayude!

Gracias, José Mastey

+0

has usado v1.7 de Prototype con Magento, ¿cómo te fue? –

+0

Este problema persiste con la última versión de Magento también (1.6.2.0) y es algo que estamos experimentando. Actualicé prototype.js a 1.7 ayer para solucionar algunos problemas relacionados con IE en un sitio Magento de clientes y todo * parece * estar bien. Aunque hay problemas con el árbol de categorías que no se expande en el panel de administración (en IE9), si soluciono esto, se rompe en Firefox/Chrome ... Dios odio IE:/ – zigojacko

16

Como actualizar prototipo tiene el potencial de romper un montón de cosas en Magento (y, honestamente, haciendo nada en Magento tiene el potencial de romper un montón de cosas en Magento) , creé una anulación tema para mi archivo

app/code/design/frontend/{package}/{theme}/template/page/html/head.phtml

y se golpeó la siguiente como primer elemento bajo la etiqueta de la cabeza:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Esto le dice a IE que finja como si fuera IE 8, donde sea posible.Esto resolvió un problema por el cual, por ejemplo, no podía verificar y completar el proceso de pago si solo tiene habilitado un método de pago, ya que en IE 9 los campos estarán atenuados.

Tenga en cuenta que realmente debe ser la primera etiqueta debajo de <head>.

Como la actualización de Magento de alguna manera tiene el potencial de causar problemas, creo que esta es la forma menos intrusiva de resolver el problema a corto plazo.

+1

Esto, y lo he lanzado juntos Módulo/parche que debería permitirle a cualquier persona agregarlo rápidamente a su tienda. http://alanstorm.com/ie9_fix_for_magento –

+3

también tenga en cuenta que puede incluir manualmente esta etiqueta a través del administrador. Vaya a Sistema> Configuración> Diseño> Guiones varios y péguelo allí. Ahorre para cada tienda/sitio web. –

+1

aunque, el enfoque manual solo arreglará las páginas frontend, y el error del prototipo también afecta al administrador ... –

0

He actualizado el archivo prototype.js a 1.7 y hasta ahora es correcto. No veo ningún error. Si apdate y encuentra errores, ¡por favor notifique!

+1

Después de actualizar los problemas vistos en el backend, no actualice – Mathew

0

La solución correcta está en el Magento forums.

En plantilla// Catálogo de productos/view/tabs.phtml, cambie la línea que dice:

ul.select('li', 'ol').each(function(el){ 

a

ul.select('li').each(function(el){