Javascript magento原型问题
我不是Magento开发者,但我被要求修复Magento站点的一个问题。我不知道我在对Magento做什么,所以我希望这里的人能给我指出正确的方向 该站点正在生成javascript错误,所有这些错误似乎都来自原型javascript库 以下是我看到的错误类型Javascript magento原型问题,javascript,jquery,magento,prototype,Javascript,Jquery,Magento,Prototype,我不是Magento开发者,但我被要求修复Magento站点的一个问题。我不知道我在对Magento做什么,所以我希望这里的人能给我指出正确的方向 该站点正在生成javascript错误,所有这些错误似乎都来自原型javascript库 以下是我看到的错误类型 var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail'); " output: anonymous function, error
var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail'); "
output: anonymous function, error on varienform.initialize ,
error on validadtion.initialize
如果您希望看到“正在运行”的错误,则该站点位于URL处
我真的不知道从哪里开始,所以非常感谢您的帮助 处理您的问题不需要了解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和prototype一起工作。但是,在页面的后面部分,您将包括另一个jQuery库
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
第二个jQuery重新定义了$
,但没有重新调用jQuery.noConflict()
。这意味着prototype和jQuery不能在您的页面上共存
正确的做法是确定站点需要哪个版本的jQuery,并确保它只包含单个库,然后调用无冲突方法
权宜之计是找到
2.0.0
jQuery的插入,然后添加一个无冲突调用-无论是在脚本块中,还是通过相同的
标记进行pr。除了Alan Storm在这里提到的还有两个错误:
1) 你在打电话吗
$(document).ready(function(){})
关于第2592行-
$
必须更改为jQuery
2) 你也在打电话吗
jQuery(“#pikame”).PikaChoose({})
关于第3778行-
但是在调用pikachoose.js之后,您重新定义了
jQuery
(通过在第67行左右调用相同的jQuery文件),这将覆盖先前的jQuery
,并使用它“删除”pikachoose
,您可能希望在此处发布您的问题:@alfasin这似乎是一个通用javascript问题,与Magento没有严格的联系。