Magento sites in IE9, prototype bugs

你离开我真会死。 提交于 2019-12-03 00:44:29

As upgrading Prototype has the potential to break a lot of things in Magento (and, honestly, doing anything in Magento has the potential to break a lot of things in Magento), I created a theme override for my

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

file and slapped the following as the first element under the head tag:

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

This tells IE to pretend as if it is IE 8, where possible. This solved an issue where, for example, you could not check out and complete the payment process if you only have one payment method enabled, as in IE 9 the fields will all be grayed out.

Note that it really must be the first tag underneath the <head>.

Since upgrading Magento in any way has the potential to cause problems, I feel this is the least intrusive way to solve the issue in the near term.

Solved: http://www.alexanderinteractive.com/blog/2011/10/solving-the-ie-7-ie-9-magento-prototype-validation-bug/ I spent a couple days on this, and discovered the only thing that truly works is disabling things at the form level. This should solve all your problems.

As a quick fix, I think I would take the same approach you are advocating, and upgrade Prototype to a version that does not contain this issue. However, Magento will be coming along with a patch (this is too big to ignore), and at that point, it would be wise to undo your changes and apply the patch they provide to keep in line with normal upgrades.

It is rarely worth it to manually dig in the internals of Magento's JS, so that option seems a bit off to me. There are probably several places where this semantic is used and you may miss some of them.

Hope that helps!

Thanks, Joseph Mastey

Mathew

I've updated the prototype.js file to 1.7 and so far it's correct. I dont see any errors. If you apdate and find errors please notify!

The proper fix is in the Magento forums.

In template/catalog/product/view/tabs.phtml, change the line that reads:

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

to

ul.select('li').each(function(el){
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!