scriptaculous1.7.0和Prototype1.5.1不兼容引起的问题

本文介绍了Scriptaculous1.7.0与Prototype1.5.1之间的兼容性问题,主要表现为Element.setOpacity()函数导致的无限递归错误。在IE中表现为堆栈溢出,在Firefox中则为其他错误。提供了两种解决方案:更换Prototype版本为1.5.0,或将Scriptaculous升级到1.7.1beta3。
Scriptaculous1.7.0Prototype1.5.1不兼容,在Scriptaculous的下载主页上已经注明了。不过,下载过后就把它忘记了,由于Scriptculous要求的1.5.0以后的Prototype,于是就下载了一个1.5.1版本,于是就出现了一个很严重的问题:
Stack overflow at line: 0该错误出现在IE浏览器,在Firefox上可能是另外一个错误。

出现问题的位置:
在代码中使用Element.setOpacity()函数。
出现问题的原因:
在Scriptaculous的effect.jsprototype.js中重复定义了该方法,并且使用了继承,导致调用时形成无限递归。于是出现堆栈溢出错误。在Firefox中给出了堆栈溢出的位置是prototype.js中的如下代码中:
1314 Element.extend.cache=...{
1315 findOrStore:
function(value)...{
1316
returnthis[value]=this[value]||function()...{
1317
returnvalue.apply(null,[this].concat($A(arguments))); //在该行出现错误
1318 }

1319 }

1320 }
;

解决方法:
1、将prototype更换为低版本,即1.5.0(也只有这一个版本符合要求)
2、将scriptaculous更换为高版本,即1.7.1 beta3(该版本声明兼容Prototype1.5.1)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值