>  기사  >  웹 프론트엔드  >  page_javascript 팁의 일부를 제외하고 JavaScript를 모두 비활성화합니다.

page_javascript 팁의 일부를 제외하고 JavaScript를 모두 비활성화합니다.

WBOY
WBOY원래의
2016-05-16 16:37:211375검색

본 글에서 논의한 방법은 이런 필요성이 있는 프로젝트를 접해본 적이 없어서 실제 프로젝트에 적용하지 못했으나, 실험을 통해 실현 가능한 것으로 나타났습니다.

1. 내 아이디어의 원천

이전 프로젝트에서는 그런 문제가 발생하지 않았기 때문에 깊이있는 조사를 많이하지 않았습니다. 처음에는 그냥 내 느낌에 따라 "교체"방법을 사용하려고 생각했습니다. 분명히 그러한 접근 방식은 뭔가 잘못될 수 있기 때문에 작동하지 않을 것입니다. 예를 들어 경고 방법을 비활성화하려면 다음 코드를 사용하세요.

window.alert('어떤 메시지');

이제 위 코드를 무효화하려면 경고를 변경하면 됩니다. 예를 들어 대문자 ALERT로 변경하면 스크립트 오류가 발생하지만 여전히 try{}catch{}를 사용하여 포함된 ALERT를 변경할 수 있습니다. 그러나 이는 금지 패키지를 식별하는 데 큰 문제이며 다음과 같은 오류도 발생합니다. document.write('alert some message'); 의 경고도 대체됩니다.

나중에 메서드를 비활성화하여 아무것도 하지 않게 만드는 방법을 생각했는데 그것이 실제로 실현 가능한 것으로 밝혀졌지만 이것이 과학적인 방법인지는 모르겠습니다. 모두와 논의하겠습니다. .

2.구체적인 구현

먼저 "alert" 및 "write" 메소드를 비활성화하려면 다음 코드를 살펴보세요.


window.alert=function(){}
document.write=function(){}

window.alert('Alert some message');
document.write('Write some message');
실제 응용에서는 처음 두 줄을 따로 추출하여 외부 JS 파일에 저장하고, JavaScript 메서드를 필터링해야 하는 페이지에 이 JS 파일을 먼저 로드하면 됩니다. 사용자가 이 스크립트를 블록의 이전 줄에 로드하면 이전 HTML 블록에서 관리자나 웹 페이지 작성자가 비활성화될 메서드를 계속 사용할 수 있으므로 나중에 비활성화된 메서드를 호출하면 작동하지 않습니다.

참고: 마지막으로, 사용자가 처음에 로드한 JS 파일을 제거하기 위해 DOM 작업 메서드를 사용할 수 있기 때문에 제거() 메서드와 같은 일부 DOM 작업 메서드도 비활성화해야 한다는 점을 기억하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.