IE9中的Magento站点,原型错误

Pie*_*ste 13 magento prototypejs internet-explorer-9

Internet Explorer 9今天发布了,我决定查看我们在过去几个月内建立的几个Magento站点,看看是否所有内容都能继续使用新版本.

但不幸的是,它没有.我遇到了一个特殊问题,这个问题是由Magento 1.6.0.3版本附带的原型库版本引起的.

看起来事件处理程序中的取消事件不起作用.
例如,如果您尝试登录Magento商店,并且只将登录名和密码字段留空,IE9即使出现错误也会提交表单,并且刷新后错误消失.
所以这是我认为的一个很大的问题.

所以我的问题是:我们如何处理这个问题?我看到了几种处理这个问题的方法:

  • 等待Magento发布带有修复程序的新版本
  • 将原型库升级到可能已修复该问题的最新版本
  • 在现有的库中乱搞并尝试修复那里的bug

等待一个新的Magento发布不是一个好主意,因为它可能需要几个星期才有一个,并且因为如果你运行的是非常旧版本的Magento,它将导致很多其他问题.
升级到最新的原型库可能是最好的想法,但Magento中的所有内容都将继续使用最新版本的原型,有没有人有这方面的经验?

那么每个人对这个问题的看法是什么?除了我以外的任何想法?

Nic*_*cki 16

升级Prototype有可能在Magento中打破很多东西(老实说,在Magento中做任何事情都有可能打破Magento的很多东西),我为我创建了一个主题覆盖

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

文件并将以下内容作为head标记下的第一个元素:

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

这告诉IE在可能的情况下假装它是IE 8.这解决了一个问题,例如,如果您只启用了一种付款方式,则无法签出并完成付款流程,因为在IE 9中,字段将全部显示为灰色.

请注意,它确实必须是下面的第一个标记<head>.

由于以任何方式升级Magento都有可能引发问题,我觉得这是在短期内解决问题的最不具侵入性的方法.

  • 另请注意,您可以通过管理员手动包含此标记.转到系统>配置>设计>杂项脚本并将其粘贴到那里.保存每个商店/网站. (3认同)
  • Miscellaneous Scripts选项可能会也可能不会起作用,具体取决于您的设置,因为至少在我的商店中,它会将该内容转储到</ head>的末尾.来自MSDN:"X-UA兼容标头不区分大小写;但是,它必须出现在除了title元素和其他元元素之外的所有其他元素之前的网页标题(HEAD部分)中." (2认同)

Jos*_*tey 0

作为快速修复,我想我会采取与您提倡的相同方法,并将 Prototype 升级到不包含此问题的版本。然而,Magento 将附带一个补丁(这太大了,无法忽略),此时,明智的做法是撤消您的更改并应用他们提供的补丁,以与正常升级保持一致。

手动挖掘 Magento JS 的内部结构很少值得,所以这个选项对我来说似乎有点不对劲。可能有几个地方使用了这种语义,您可能会错过其中的一些。

希望有帮助!

谢谢,约瑟夫·马斯蒂