>웹 프론트엔드 >JS 튜토리얼 >page_javascript 기술에서 일부 JavaScript 메소드를 비활성화하는 특정 구현

page_javascript 기술에서 일부 JavaScript 메소드를 비활성화하는 특정 구현

WBOY
WBOY원래의
2016-05-16 17:27:441267검색

본 글에서 논의한 방법은 이러한 필요성이 있는 프로젝트를 접해본 적이 없기 때문에 실제 프로젝트에 적용되지 않았으나, 실험을 통해 실현 가능하다는 것을 확인하였다.

1. 내 아이디어의 원천

JavaScipt의 외관은 웹페이지 표현을 더욱 생생하게 만들어줍니다. 물론 장점은 이뿐만이 아닙니다. 그러나 최근 AJAX 애플리케이션이 붐을 일으키면서 사람들은 JavaScript 작은 언어의 애플리케이션에 더 많은 관심을 갖게 되었습니다. (많은 프로그래머는 이를 언어로 여기지 않고 기껏해야 스크립트라고 부르며, 심지어는 스크립팅에서). 요즘에는 많은 블로그 공식 웹사이트에서 스크립트 권한을 공개하여 사용자가 자신의 공간을 풍부하게 만들기 위해 스크립트를 맞춤 설정할 수 있습니다. 특히 일부 기술 및 전문 블로그는 상당히 편안한 개발 환경을 제공합니다. 그러나 우리는 또한 많은 블로그가 특정 스크립트 방법을 제한한다는 사실도 발견했습니다. 여기서 말하는 것은 부분 제한입니다. 전체 제한이라면 매우 간단합니다. 그런데 부분 제한은 어떻게 이루어지나요?

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

코드 복사 코드는 다음과 같습니다. :

window.alert('Some message');

이제 위 코드를 무효화하려면 알림을 모두 대문자로 변경하세요. ALERT, 이는 스크립트 오류가 보고될 것이지만 여전히 try{}catch{}를 사용하여 ALERT를 포함할 수 있지만 이는 비활성화된 언어 패키지를 식별하는 데 큰 문제이며 다음과 같은 오류도 있을 것입니다. .write('alert 일부 메시지의 경고')도 교체되었습니다.

나중에 메서드를 다시 작성해서 비활성화하고 아무것도 하지 않게 만드는 방법을 생각해봤는데 정말 실현 가능한 방법이었는데, 제가 생각해낸 방법인지는 몰랐습니다. 함께 토론해 봅시다.

2. 특정 구현

먼저 "alert" 및 "write" 메소드를 비활성화하는 다음 코드를 살펴보세요.
코드 복사 코드는 다음과 같습니다.

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

window.alert('Alert some message');
document.write('Write some message');

실제 애플리케이션에서는 매우 간단해 보입니다. 처음 두 줄을 별도로 추출하여 외부 JS 파일에 저장하고 JavaScript 메서드를 필터링해야 하는 페이지에 이 JS 파일을 먼저 로드합니다(사용자가 콘텐츠 블록을 편집하기 전에 해당 줄에 이 스크립트를 로드할 수도 있으므로 HTML 블록 이전에는 관리자나 웹 페이지 작성자가 비활성화된 메서드를 계속 사용할 수 있으므로 나중에 비활성화된 메서드를 호출하면 작동하지 않습니다.

참고: 마지막으로, 사용자가 DOM 작업 메서드를 사용하여 처음에 로드한 JS 파일을 제거할 수 있으므로, 제거() 메서드와 같은 일부 DOM 작업 메서드를 비활성화하세요.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.