2013-05-07 172 views
-1

我不是Magento開發者,但我被要求修復Magento網站的問題。我不知道我在用Magento做什麼,所以我希望這裏有人能指引我朝着正確的方向發展。magento原型問題

該網站正在生成JavaScript錯誤,他們都似乎是從原型JavaScript庫。

這是我看到的那種錯誤。

var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail'); " 
output: anonymous function, error on varienform.initialize , 
error on  validadtion.initialize 

該網站是在URL http://loja.viavini.com.br/,如果你想看到「在行動」的錯誤。

我真的不知道從哪裏開始,所以任何幫助表示讚賞。

+1

您可能想在此發佈您的問題:http://magento.stackexchange.com/ – alfasin 2013-05-07 21:05:38

+1

@alfasin這似乎是一個通用的JavaScript問題,並不嚴格與Magento相關。 – 2013-05-07 21:37:00

回答

0

你不需要知道一件關於Magento來處理你的問題。

您鏈接的網站同時使用jQuery和Prototype。如果在控制檯中查看$的值,則主要是jQuery函數。

> $ 
function (e,n){return new x.fn.init(e,n,t)} 

我不能確定這是爲什麼,但我的第一個研究領域是你所包含的多個jQuery庫。在您使用的頁面的頂部附近

<script type="text/javascript" src="http://loja.viavini.com.br/js/my_ibanner/jquery.js"></script> 
<script type="text/javascript" src="http://loja.viavini.com.br/js/my_ibanner/jquery.noconflict.js"></script> 

這通常足以讓jQuery和原型一起工作。但是,後來在你的頁面包含另一個jQuery庫

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 

第二jQuery的重新定義$,但不會重新做jQuery.noConflict()通話。這意味着原型和jQuery不能在您的頁面上共存。

正確的做法是確定您的站點需要哪個版本的jQuery,並確保它只包含該單個庫,然後調用無衝突方法。

的有利的事情是找到2.0.0的jQuery的插入,之後添加一個沒有衝突的呼叫 - 無論是在腳本塊,PR通過相同<script type="text/javascript" src="http://loja.viavini.com.br/js/my_ibanner/jquery.noconflict.js"></script>標籤。

1

再說什麼艾倫風暴這裏提到的2個以上的錯誤,以及:關於行2592

1)要調用 $(document).ready(function() {}) - 的$必須改變以jQuery

2)另外你在約3778行調用 jQuery("#pikame").PikaChoose({}) - 但你重新定義jQuery(通過調用同一個jQuery的文件,圍繞第67行)後pikachoose.js被稱爲 - 這是覆蓋前jQuery,並與它「刪除」PikaChoose