2013-04-05 3 views
3

우선 : this answer을 읽었습니다 ... 그리고 예, 스크립트 후 메타가 없습니다 (메타를 사용하지 않기 때문에). 내 페이지), 그리고, 아니, 거기에 어떤 제한 또는 아약스 요청왜 "해제 된 스크립트에서 코드를 실행할 수 없습니까?"

I이 헬퍼 메소드 (예, 내가 만든 수있는 프로토 타입 방법 ...) 다음

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 
    }); 
}); 

나는 이메일을 받고있다. xception "SCRIPT5011 : 해제 된 스크립트에서 코드를 실행할 수 없습니다"다음 줄에 (만 IE에서하는 렌더링 모드 < 10) :

array.splice(index, 1); 

하지만 첫 번째 호출에 있지만, 이후의 것들에 (의 같은 배열) ...

그러나 나는이 예외가 발생하는 이유를 생각할 수 없다. 다른 줄의 배열도 callstack에 액세스한다. (예 : getIndexOfElement, 어디에서 볼 수 있는가? 배열을 반복).

아무도 도와 줄 수 있습니까?

+2

이것을 피델에서 재현 할 수 있습니까? –

+0

@dystroy 좋은 지적! 하려고합니다! –

+0

코드에서 스플 라이스 기능을 변경하지 않았습니까? 배열이 실제 배열이나 배열과 같은 객체입니까? –

답변

2

This question에는 iframe 관련성에 대한 답변이 포함되어 있습니다. (OP 제안에 의해 답변으로 추가됨).

관련 문제