3
首先:是的,我读过this answer ......并且,是的,脚本之后没有meta(因为我没有任何meta我的网页),以及,没有,没有超时或AJAX请求为什么我会得到“无法从释放的脚本执行代码”
我有以下的辅助性方法(是的,我可以做出一个原型法...):
function removeElementFromArray(array, compareMethod) {
if (!array) {
return;
}
if (!$.isFunction(compareMethod)) {
return;
}
var index = getIndexOfElement(array, compareMethod);
if (index < 0) {
return;
}
array.splice(index, 1);
}
function getIndexOfElement(array, compareMethod) {
if (!array) {
return -1;
}
if (!$.isFunction(compareMethod)) {
return -1;
}
for (var i = 0; i < array.length; i++) {
var element = array[i];
if (compareMethod(element)) {
return i;
}
}
return -1;
}
我打电话给:
$foo.on('click', function() {
removeElementFromArray(window.myArray, function (element) {
return // some condition
});
});
我得到e xception“SCRIPT5011:不能从已释放脚本执行代码”(只在IE渲染模式< 10)在下面一行:
array.splice(index, 1);
但不是在第一次通话,但在任何后续的那些(对相同的阵列)...
但我想不出为什么会发生这种异常,因为我在调用堆栈中访问其他行中的数组(如您所见,例如getIndexOfElement,其中I遍历数组)。
有人可以帮我吗?
你能在小提琴中重现吗? – 2013-04-05 09:34:43
@dystroy好点!会尽力! – 2013-04-05 09:37:53
你确定你的代码没有改变拼接功能吗?数组是一个真正的数组还是一个类似数组的对象? – 2013-04-05 09:38:29