2011-03-15 55 views
13

Internet Explorer 9今天發佈,我決定檢查我們在過去幾個月內構建的一些Magento站點,以確定是否所有軟件都可以繼續使用新版本。IE9中的Magento站點,原型漏洞

但不幸的是它沒有。我遇到了一個特殊的問題,這個問題是由Magento 1.6.0.3版本附帶的原型庫引起的。

它看起來像事件處理程序中的取消事件不起作用。
例如,如果您嘗試登錄Magento商店,並且只保留登錄名和密碼字段爲空,即使出現錯誤,IE9也會提交表單,並且刷新後錯誤消失。
所以這是我想的一個很大的問題。

所以我的問題是:我們如何處理這個問題?我看到一對夫婦的方式來解決這個問題:

  • 等待Magento的釋放與修復新版本
  • 升級原型庫,其可能已經有大約固定的問題
  • 混亂最新版本在現有的庫,並嘗試修復了存在

等待新的Magento的版本是不是一個好主意,因爲它可能會需要幾個星期前,有一個,因爲它會造成一個整體如果你正在運行一個非常舊的M版本,很多其他問題代理0。
升級到最新的原型庫可能是最好的主意,但是Magento中的所有產品能否繼續使用最新版本的原型,有沒有人有過這方面的經驗?

那麼大家對這個問題的看法是什麼? 除了我的任何想法?

+0

我運行Magento的1.3.3和我有隻是放在Prototype 1.7.0中,它已經解決了這個問題,到目前爲止我還沒有看到任何問題。手指交叉。 – JonB 2011-05-25 06:59:59

回答

0

作爲一個快速解決方案,我認爲我會採用您所倡導的相同方法,並將Prototype升級到不包含此問題的版本。但是,Magento會附帶一個補丁(這太大而無法忽略),並且在那個時候,撤銷修改並應用它們提供的修補程序以保持與正常升級保持一致是明智的。

在Magento的JS的內部手動挖掘是很少值得的,所以這個選項對我來說似乎有點不合適。有可能有幾個地方使用這種語義,你可能會錯過其中的一些地方。

希望有幫助!

感謝, 約瑟夫Mastey

+0

你有沒有使用Magento Prototype v1.7,它是怎麼回事? – 2011-03-17 05:05:47

+0

Magento的最新版本(1.6.2.0)也存在此問題,這是我們正在遇到的問題。我昨天更新了prototype.js到1.7,以解決客戶端Magento網站上的一些IE相關問題,並且所有內容*看起來都沒問題。儘管在管理面板中沒有擴展類別樹(在IE9中),但如果我解決了這個問題,它會在Firefox/Chrome中崩潰......上帝我討厭IE:/ – zigojacko 2012-04-19 15:29:41

16

由於升級原型已經打破了很多東西在Magento(而且,說實話,在Magento做任何有潛力打破在Magento很多東西)的潛力,我創建了一個主題覆寫,我

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

文件,拍拍下面的頭標記下的第一個元素:

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

這告訴IE在可能的情況下假裝它是IE 8。這解決了一個問題,例如,如果您只啓用一種付款方式,則無法檢出並完成付款流程,如在IE 9中,這些字段將全部變灰。

請注意,它確實必須是<head>下的第一個標籤。

由於以任何方式升級Magento都有可能導致問題,因此我認爲這是近期解決問題的最不具侵略性的方式。

+1

這個,我已經把一個快速模塊/補丁,應該允許任何人快速將其添加到他們的商店。 http://alanstorm.com/ie9_fix_for_magento – 2011-03-15 20:31:58

+3

也請注意,您可以通過管理員手動添加此代碼。進入系統>配置>設計>其他腳本並粘貼在那裏。保存每個商店/網站。 – 2011-03-16 02:36:22

+1

儘管手動方法只會修復前端頁面,並且原型錯誤也會影響管理員... – 2011-03-16 04:53:33

0

我已將prototype.js文件更新爲1.7,至此它是正確的。我沒有看到任何錯誤。如果您更新並發現錯誤,請通知!

+1

在更新後端中看到的問題後,請勿更新 – Mathew 2012-06-20 13:26:25

0

正確的修復方法是在Magento forums

模板/目錄/產品/視圖/ tabs.phtml,更改讀取的行:

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

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