Scriptaculous1.7.0和
Prototype1.5.1
不兼容,在Scriptaculous的下载主页上已经注明了。不过,下载过后就把它忘记了,由于Scriptculous要求的1.5.0以后的Prototype,于是就下载了一个1.5.1版本,于是就出现了一个很严重的问题:
Stack overflow at line: 0 该错误出现在IE浏览器,在Firefox上可能是另外一个错误。
出现问题的位置:
在代码中使用 Element.setOpacity()函数。
出现问题的原因:
在Scriptaculous的 effect.js和 prototype.js中重复定义了该方法,并且使用了继承,导致调用时形成无限递归。于是出现堆栈溢出错误。在Firefox中给出了堆栈溢出的位置是 prototype.js中的如下代码中:
解决方法:
1、将prototype更换为低版本,即1.5.0(也只有这一个版本符合要求)
2、将scriptaculous更换为高版本,即1.7.1 beta3(该版本声明兼容Prototype1.5.1)
Stack overflow at line: 0 该错误出现在IE浏览器,在Firefox上可能是另外一个错误。
出现问题的位置:
在代码中使用 Element.setOpacity()函数。
出现问题的原因:
在Scriptaculous的 effect.js和 prototype.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 } ;
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)