Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript magento原型问题_Javascript_Jquery_Magento_Prototype - Fatal编程技术网

Javascript magento原型问题

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

我不是Magento开发者,但我被要求修复Magento站点的一个问题。我不知道我在对Magento做什么,所以我希望这里的人能给我指出正确的方向

该站点正在生成javascript错误,所有这些错误似乎都来自原型javascript库

以下是我看到的错误类型

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没有严格的联系。