簡體   English   中英

為什么得到“無法從釋放的腳本執行代碼”

[英]Why do I get “Can't execute code from a freed script”

首先:是的,我已經閱讀了這個答案 ...而且,是的,腳本后沒有元數據(因為我的頁面上沒有任何元數據),並且,不,沒有超時或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)。

有人可以幫我嗎?

這個問題包含有關iframe關系的良好答案。 (由OP建議添加為答案)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM