4

首先:是的,我已经阅读了这个答案......而且,是的,脚本之后没有元数据(因为我的页面上没有任何元数据),并且,不,没有超时或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:无法从释放的脚本中执行代码”(仅在 IE 渲染模式 < 10 中):

array.splice(index, 1);

但不是在第一次调用时,而是在任何后续调用时(对于同一个数组)......

但是我想不出这个异常发生的单一原因,因为我正在其他行以及调用堆栈中访问数组(如您所见,例如 getIndexOfElement,我在其中迭代数组)。

有人可以帮帮我吗?

4

1 回答 1

2

这个问题包含关于 iframe 关系的一个很好的答案。(添加为 OP 建议的答案)。

于 2013-04-05T10:08:57.190 回答