우선 : 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, 어디에서 볼 수 있는가? 배열을 반복).
아무도 도와 줄 수 있습니까?
이것을 피델에서 재현 할 수 있습니까? –
@dystroy 좋은 지적! 하려고합니다! –
코드에서 스플 라이스 기능을 변경하지 않았습니까? 배열이 실제 배열이나 배열과 같은 객체입니까? –