자바 스크립트의 JSON을 재정의하는 페이지에서 실행해야하는 스크립트가 있다고 가정 해 봅시다. stringify, 당신은 어떻게 당신의 코드가 원래의 stringify를 사용하는 것을 보장 하겠는가?JavaScript에서 재정의 된 함수의 원래 상태를 복원하는 방법
3
A
답변
2
나는 다른 답변 중 하나를 선택하는 것이지만, 여기에 경우에 대한 해결책 경우 :
- 이 따라서 변경 될 수 없습니다 페이지;
- 코드 은 012ON_STRING을 덮어 쓰는 코드 앞에을 실행할 수 없습니다.
- 코드 은 원래의 function-object를 저장 (나중에 복원하거나 명시 적으로 사용) 할 수 없습니다.
- 는 IFRAME 요소를 만듭니다 여기
는 해킹이다.
- IFRAME 요소의
contentWindow
속성에 액세스하십시오. 여기에는 원본 (또는 "새로운"그대로) JSON 객체와 원본 JSON.stringify 함수가 포함되어야합니다. 다른 코드를 수정할 수있는 기회를 가지고 전에
3
라이브러리를 만드는 경우 JSON.stringify
이 표준 동작을 따라야한다는 요구 사항을 지정하십시오.
코드에 엄격한 요구 사항을 적용하는 데는 아무런 문제가 없습니다. 실제로는 좋은 생각입니다. 요구 사항을 문서화해야합니다.
원본이 영구적으로 재정의 된 경우 분명히 사용할 수 없습니다. 최종 사용자에게 부담을주는 것이 더 나은 솔루션입니다.
개인 프로젝트의 경우 라이브러리가 아니라 개인 프로젝트의 경우 준수하는 메소드를 부적합한 메소드로 바꾸는 것보다 어리석은 행동을하는 제 3 자 코드를로드하는 것을 거부해야합니다.
1
덮어 쓰기 전에 JSON.stringify
의 백업을 만듭니다. 백업 할 수없는 경우 a shiv을 사용하십시오.
관련 문제
- 1. 재정의 된 함수의 원래 정의 얻기
- 2. 안드로이드 조각보기 상태를 복원하는 방법
- 3. 체크 박스 상태를 복원하는 방법
- 4. OpenGL ES 상태를 저장/복원하는 올바른 방법
- 5. JavaScript에서 확장/재정의 하시겠습니까?
- 6. 이미지를 원래 색상으로 복원하는 Matlab
- 7. audiounit의 상태를 audiounit 호스트로 저장하고 복원하는 방법
- 8. RaphaelJS에서 변환 상태를 저장하고 복원하는 방법
- 9. Mercurial : rebase 후 복원하는 방법
- 10. NSMutableArray의 원래 정렬 순서를 복원하는 방법은 무엇입니까?
- 11. 충돌 후 b2Body 상태를 복원하는 방법은 무엇입니까?
- 12. Android보기 (UI)의 상태를 복원하는 방법은 무엇입니까?
- 13. Android에서 ExpandableListView의 상태를 저장하고 복원하는 방법은 무엇입니까?
- 14. JavaScript에서 Youtube 비디오 상태를 감지
- 15. CodeIgniter - 색인 함수의 원래 URL을 표시합니까?
- 16. Hg : 취소 된 변경 내용을 복원하는 방법?
- 17. 삭제 된 Git 브랜치를 복원하는 방법
- 18. Eclipse에서 삭제 된 원근감을 복원하는 방법
- 19. 삭제 된 TFS 프로젝트 포털을 복원하는 방법
- 20. MDB에서 삭제 된 레코드를 복원하는 방법
- 21. Javascript에서 행 색상을 원래 색상으로 변경
- 22. gwt - 이전보기를 복원하는 방법
- 23. JavaScript에서 인라인 함수의 값으로 매개 변수 전달
- 24. 마우스 오버 상태를 바인딩 해제했지만 다른 상태로 복원하는 방법은 무엇입니까?
- 25. jQuery에서 setInterval 함수의 상태를 토글하는 방법은 무엇입니까?
- 26. jQuery UI - 삭제 된 드래그 가능 방법을 복원하는 방법
- 27. ManyToOne 관계로 JPA 엔티티를 복원하는 방법
- 28. 재정의 방법
- 29. 내비게이션 스택의 상태를 복원하는 가장 좋은 알고리즘은 무엇입니까
- 30. (불완전한) 선택 목록의 순서를 원래 순서로 복원하는 방법은 무엇입니까?
당신의 코드를 실행? 나는 변수 (또는이 경우 함수)가 덮어 쓰기되기 전에 거기에 있었던 것을 찾을 수 있는지 심각하게 의심합니다 ... – tucuxi
왜 이것을해야합니까? – Ryan
http://stackoverflow.com/questions/8580431/recovering-built-in-methods-that-have-been-overwritten iframe을 만들고 해당 (새 것, 수정되지 않은) 내용에 액세스 할 수 있습니다. 또한, 귀하의 질문은이 사본과 중복되므로 닫아야합니다. – tucuxi