IE9中的Magento站点,原型错误

时间:2011-03-15 12:44:10

标签: magento prototypejs internet-explorer-9

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

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

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

所以我的问题是:我们如何处理这个问题?我认为有两种方法可以解决这个问题:

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

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

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

5 个答案:

答案 0 :(得分: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都有可能导致问题,我觉得这是在短期内解决问题的最不具侵入性的方法。

答案 1 :(得分:1)

解决:http://www.alexanderinteractive.com/blog/2011/10/solving-the-ie-7-ie-9-magento-prototype-validation-bug/ 我在这上花了几天时间,发现真正有效的唯一方法就是在表单层面禁用东西。这应该解决你所有的问题。

答案 2 :(得分:0)

作为一个快速解决方案,我认为我会采用您所倡导的相同方法,并将Prototype升级到不包含此问题的版本。但是,Magento将会出现一个补丁(这个太大而不容忽视),此时,最好撤消更改并应用他们提供的补丁以保持正常升级。

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

希望有所帮助!

谢谢, 约瑟夫马斯蒂

答案 3 :(得分:0)

我已将prototype.js文件更新为1.7,到目前为止它是正确的。我没有看到任何错误。如果您发现并发现错误,请通知!

答案 4 :(得分:0)

正确的解决方法在Magento forums

template / catalog / product / view / tabs.phtml 中,更改以下行:

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

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