많은 웹 개발자가 이러한 문제에 직면했을 수 있습니다. 프로그램은 이상하게 "릴리스된 스크립트의 코드를 실행할 수 없습니다", 오류 줄 1, 열 1을 표시합니다. 이 메시지에 대한 설명은 명확하지 않으며 열 설명은 훨씬 더 임의적인 js입니다. 오류는 JS 프로그램을 디버깅하는 모든 친구들에게 가장 우울하고 싫은 일이라고 믿어집니다! 이런 종류의 문제가 발생했을 때 가장 쉬운 방법은 오류를 바이두나 구글의 작은 입력 상자에 직접 붙여넣고 몇 가지 지침을 제공한 후 해결하는 것입니다. 그러나 이번에는 그렇게 쉽지 않은 것 같습니다. Baidu에서 검색할 때 이런 문제가 발생했습니다. 이전에 이런 종류의 문제를 본 적이 있지만 항상 일종의 QQ 공간 오류이거나 미쳤거나 질문만 있고 답변이 없고 지루합니다!
이 오류는 어디서 발생하나요? 어쩔 수 없이 추측하고... 오류를 잡아내려고 한참을 검색한 끝에 오류 위치를 찾았지만, 나중에 쓴 내용에는 문제가 없다는 것을 알게 되었습니다. 프로그램의 설명 과정에 대해 생각해볼 생각은 있지만 아직은 아무것도 모르겠습니다. 바이두를 계속하다 갑자기 특정 웹 페이지에서 다음과 같은 문장을 봤습니다. 페이지가 닫히면 해당 페이지의 js가 자동으로 해제됩니다. 이 짧은 문장이 나에게 많은 영감을 주었다. 내 프로그램이 페이지를 닫았는지 아니면 페이지를 리디렉션했는지 확인했는데 리디렉션이 실행된 후 이 페이지로 돌아올 때 오류가 발생했습니다. 갑자기 나는 이해했다.
시나리오: 페이지에는 iframe a와 b라는 두 개의 프레임 페이지가 있습니다. 페이지 b에서는 js를 통해 페이지 a에 함수 참조가 전달되고 이 참조를 통해 페이지 a의 변수에 저장됩니다. 페이지 b의 일부 프로그램의 경우 페이지 b를 새로 고치면 페이지 a에서 b 페이지로의 참조가 손실되지만 이전에 페이지 b에서 전달된 참조는 여전히 a에 저장되지만 현재 참조는 더 이상 페이지 b를 참조할 수 없습니다. 이므로 실행 시 "해제된 스크립트 코드를 실행할 수 없습니다."가 나타납니다.
해결책: 참조에서 오류가 발생하면 참조를 지우거나 기본값을 지정합니다. 기능. 또한, b 페이지를 다시 로드할 때 함수 참조를 a 페이지로 다시 전송해야 이러한 오류가 발생하지 않습니다.
여기 설명은 다소 추상적일 수 있습니다. 데모를 본 다음 코드를 먼저 살펴보고, URL을 반환한 다음 다시 테스트하면 이 문제가 발생합니다. .