이 기사에서 논의 된 방법은 실제 프로젝트에 적용되지 않았습니다.이를 필요로하는 프로젝트를 발견하지 못했지만 실험에서는 실험 할 수 있습니다.
1. 내 생각의 근원
JavaScript는 좋은 것입니다. 외관은 웹 페이지를 더욱 활기차게 만듭니다. 물론, 이점은 그저 그런 것이 아닙니다. 최근 몇 년 동안 인기있는 AJAX 응용 프로그램은 사람들이 JavaScript Small Language의 적용에 더 많은 관심을 기울이기 시작했습니다 (많은 프로그램 전문가는 그것을 언어로 간주하지 않으며, 대본 제목이며, 심지어 대본을 만드는 사람들을 내려다 보는 것입니다). 이제 많은 블로그가 공식 웹 사이트에서 스크립트 권한을 열어 스크립트를 사용자 정의하여 공간, 특히 일부 기술 전문가 블로그를 풍부하게하여 다소 편안한 개발 환경을 제공 할 수 있습니다. 그러나 우리는 또한 많은 블로그가 특정 스크립팅 방법에 제한이 있음을 발견했습니다. 여기에서 부분 제한에 대해 이야기하고 있습니다. 모든 제한이라면 매우 간단합니다. <cript> 스크립트 블록을 걸러 내지 만 일부 제한은 어떻게 달성됩니까?
이전 프로젝트에서 그런 문제를 겪지 않았기 때문에 심도있는 연구를 많이하지 않았습니다. 처음에는 내 감정에 따라 "교체"방법을 사용하는 것을 생각했습니다. 분명히이 방법은 잘못 될 수 있기 때문에 작동하지 않습니다. 예를 들어 Alert 메소드를 비활성화하려면 다음 코드를 사용할 수 있습니다.
window.alert ( '일부 메시지');
이제 위의 코드를 유효하게 만들려면 경고를 변경하십시오. 예를 들어, 자본 경고로 변경하면 스크립트 오류를 확실히보고 할 수 있지만 여전히 시도 {} catch {}를 사용하여 경고를 포함 할 수 있지만 이는 언어 패키지 비활성화를 인식하는 데 큰 문제가 있습니다. 그러한 오류가 있습니다. document.write ( 'Alert 일부 메시지')에서 알림을 바꾸십시오.
나중에 나는 메소드를 다시 작성하고, 비활성화 될 방법을 다시 작성하고, 아무것도하지 않는다고 생각했다. 결과는 실현 가능했지만 그것이 과학적 방법인지는 모르겠습니다. 나는 그것을 꺼내서 당신과 논의 할 것입니다.
2. 특정 구현
먼저 다음 코드를 살펴 보겠습니다. "Alert"및 "Write"두 가지 방법을 비활성화합니다.
window.alert = function () {} document.write = function () {} window.alert ( '일부 메시지 알림'); document.write ( '일부 메시지 쓰기');정말 간단해 보입니다. 실제 응용 프로그램에서 처음 두 줄을 별도로 추출하고 외부 JS 파일에 저장하고 JavaScript 메소드를 필터링 해야하는 페이지에 JS 파일을 먼저로드하십시오 (사용자 또는 웹 페이지 제조업체가 이전 HTML 블록에서 비활성화 할 방법을 사용할 수 있도록 사용자 편집 콘텐츠 블록의 이전 줄 에이 스크립트를로드 할 수도 있습니다). 이런 식으로, 나중에 장애인 방법을 호출하는 것은 작동하지 않습니다.
참고 : 마지막으로 사용자는 DOM 작동 방법을 사용하여 처음에로드 한 JS 파일을 제거 할 수 있기 때문에 remove () 메소드와 같은 일부 DOM 작동 방법을 비활성화해야합니다.