scriptaculous1.7.0和Prototype1.5.1不兼容引起的问题-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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

简介:     Scriptaculous1.7.0和Prototype1.5.1不兼容,在Scriptaculous的下载主页上已经注明了。不过,下载过后就把它忘记了,由于Scriptculous要求的1.5.0以后的Prototype,于是就下载了一个1.5.1版本,于是就出现了一个很严重的问题:        Stack overflow at line: 0 该错误出现在IE浏览器,在Firefox上可能是另外一个错误。
    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     
return this[value] = this[value] || function() ...{
1317       
return value.apply(null, [this].concat($A(arguments))); //在该行出现错误
1318     }

1319   }

1320 }
;

        解决方法:
        1、将prototype更换为低版本,即1.5.0(也只有这一个版本符合要求)
        2、将scriptaculous更换为高版本,即1.7.1 beta3(该版本声明兼容Prototype1.5.1)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章