我不是Magento开发人员,但我被要求修复Magento网站的问题。我不知道我和Magento在做什么,所以我希望有人能指出我正确的方向。
该网站正在生成javascript错误,所有这些错误似乎来自原型javascript库。
这是我看到的那种错误。
var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail'); "
output: anonymous function, error on varienform.initialize ,
error on validadtion.initialize
如果您希望查看“在行动中”错误,该网站位于网址 http://loja.viavini.com.br/。
我真的不知道从哪里开始,所以任何帮助都表示赞赏。
答案 0 :(得分:1)
除了Alan Storm在这里提到的还有两个错误:
1)你在打电话
关于第2592行的$(document).ready(function() {})
-
必须将$
更改为jQuery
。
2)你也在打电话
关于第3778行的jQuery("#pikame").PikaChoose({})
-
但是你在调用pikachoose.js之后重新定义了jQuery
(通过在第67行调用相同的jQuery文件) - 它覆盖了之前的jQuery
并用它“删除”PikaChoose
。
答案 1 :(得分: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的插入,并在此之后添加一个无冲突的调用 - 在脚本块中,通过相同的<script type="text/javascript" src="http://loja.viavini.com.br/js/my_ibanner/jquery.noconflict.js"></script>
标记。