首先,是的,我已经阅读了这个答案... 而且,是的,在我的页面上没有任何 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
});
});
我在以下代码中遇到了异常 "SCRIPT5011: Can't execute code from a freed script" (仅在IE渲染器版本小于10时出现):
array.splice(index, 1);
这个异常不会在第一次调用时出现,但如果对同一个数组进行多次调用,则可能会出现异常...
我无法想到任何一个原因导致这种异常的发生,因为在调用堆栈中,我还在其他行访问了该数组(例如,getIndexOfElement,其中我遍历了该数组)。
有人能帮我解决这个问题吗?
new Array();
创建,当我在检查器中悬停splice
原型时,我得到了native code
... - user57508