javascript inline_javascript 기술을 사용하지 말아야 하는 이유의 예

WBOY
풀어 주다: 2016-05-16 16:51:46
원래의
1218명이 탐색했습니다.

많은 분들이 이렇게 Javascript를 사용해 오셨습니다.

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

< a href= "#" onclick="al()">Save

위 코드는 사용하기 매우 편리하며 모든 브라우저에서 지원됩니다

HTML, CSS, JS를 분리하면 유지관리가 더 쉽다는 내용의 책을 아주 일찍 읽은 적이 있는데, 편의성에 욕심이 나서 디버깅을 하다 보면 이런 글을 자주 쓰게 됩니다. 오늘 저는 인라인으로 작성하지 않는 것이 더 낫다는 것을 알았습니다. 왜냐하면 Firefox의 방화범을 사용하면 코드가 쉽게 무효화될 수 있기 때문입니다.

이유를 살펴보겠습니다.
코드 복사 코드는 다음과 같습니다.



<script> <BR>function al() <BR>{ <BR>alert("good") <BR></script>


저장 ;/body>



위 코드는 레이블을 클릭하여 대화 상자를 팝업하는 것입니다.

효과는 다음과 같습니다.


javascript inline_javascript 기술을 사용하지 말아야 하는 이유의 예하지만 Firefox에서 a 태그를 찾아 안에 있는 js 코드를 제거하면 a 태그를 클릭해도 아래와 같이 대화 상자가 나타나지 않습니다


javascript inline_javascript 기술을 사용하지 말아야 하는 이유의 예 따라서 귀하의 클릭 이벤트가 다음과 같은 경우 사용자가 입력한 데이터가 합법적인지 판단하는 것은 불가능합니다.

저는 asp.net에서 일하고 있는데 오늘 이 문제를 발견했습니다. net 서버 컨트롤에는 프런트 데스크와 프런트 데스크에 각각 하나씩 두 개의 클릭 이벤트가 있습니다. 백그라운드에서는 포그라운드의 클릭 이벤트를 사용하여 사용자의 입력 데이터가 합법적인지 판단했습니다. 결과적으로 Firefox를 사용하여 위에서 설명한 현상을 발견했습니다. 데이터가 불법이더라도 백그라운드 메서드를 직접 호출하는 것은 아닙니다. 어떤 기술인지는 모르지만 이것을 발견하게 되어 기쁩니다. 문제는 기사를 올려서 공유해주세요 ㅎㅎ

해결책:

아래와 같이 태그에 ID를 부여하세요


저장 <script> <div class="codebody" id="code18683">document.getElementById("a1").onclick=function(){} <br></script>
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿