js 헤드 에 실효 원인 및 해결 방법

3662 단어 jshead
1.오늘 js 를 쓰 는 것 이 이상 한 문제 에 부 딪 혔 습 니 다.작성 한 js 를 body 에 넣 고 실 행 했 지만 head 에 넣 으 면 아무런 효과 가 없 었 습 니 다.왜 이런 원인 을 초래 했 습 니까?
실효 코드 보기:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title> new document </title>
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 <style type="text/css">
 .login{width:40px;height:25px;line-height:25px;background-color:#4E74A5;margin-top:30px;text-align:center;color:#FFF;}
 </style>
 <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
 <script type="text/javascript">
 $(".login").click(function(){
   alert(1);
   });
 </script>
 </head>
 <body>
 <input type="text" class="pass" />
 <div id="enter" class="login">   </div>
 </body>
</html>
2.해결 방법:js 코드 를 body 에 넣 거나 이용 window.onload=function(){}코드 패키지,문 서 를 불 러 온 후에 실행 합 니 다.나중에 head 에 넣 는 것 을 권장 하지 않 습 니 다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title> new document </title>
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 <style type="text/css">
 .login{width:40px;height:25px;line-height:25px;background-color:#4E74A5;margin-top:30px;text-align:center;color:#FFF;}
 </style>
 <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
 <script type="text/javascript">
 window.onload = function(){
 $(".login").click(function(){
   alert(1);
   });
 } 
 </script>
 </head>
 <body>
 <input type="text" class="pass" />
 <div id="enter" class="login">   </div>
 </body>
</html>
3.이유:
문 서 를 불 러 오지 않 았 기 때문에 js 를 읽 었 습 니 다.js 는 소 용이 없습니다.head 에서 사용 하려 면 window.onload=function(){/여기 코드 를 감 싸 줍 니 다}
js 는 외부 와 내부 로 나 눌 수 있 고 외부 js 는 보통 head 안에 넣는다.내부 의 js 는 본 페이지 의 JS 스 크 립 트 라 고도 부 릅 니 다.내부 의 js 는 보통 body 에 넣 습 니 다.이렇게 하 는 목적 은 매우 많 습 니 다.
1.페이지 의 불 러 오 는 것 을 막 지 않 습 니 다(사실상 js 는 캐 시 됩 니 다).
2.js 에서 dom 을 직접 조작 할 수 있 습 니 다.이때 dom 은 준비 되 어 있 습 니 다.즉,js 가 실 행 될 때 dom 이 존재 하도록 보장 합 니 다.
3.제안 하 는 방식 은 페이지 밑 에 놓 고 window.onload 나 readystate 를 감청 하여 js 를 촉발 하 는 것 입 니 다.
4.연장:
헤드 안의 js 는 페이지 의 전송 과 페이지 의 렌 더 링 을 막 습 니 다.head 에 있 는 JavaScript 는 실행 이 끝나 야 body 를 렌 더 링 하기 시작 하기 때문에 가능 한 한 head 에 JS 파일 을 넣 지 마 십시오.document 이 완 료 될 때 나 특정 블록 뒤에 자 바스 크 립 트 를 도입 하고 실행 할 수 있 습 니 다.head 에 있 는 JavaScript 는 실행 이 끝나 야 body 를 렌 더 링 하기 시작 하기 때문에 가능 한 한 head 에 JS 파일 을 넣 지 마 십시오.document 이 완 료 될 때 나 특정 블록 뒤에 자 바스 크 립 트 를 도입 하고 실행 할 수 있 습 니 다.
그래서 헤드 에 있 는 js 는 보통 실행 이 끝 난 후에 야 바디 페이지 를 렌 더 링 하기 시작 합 니 다.헤드 가 도입 한 js 스 크 립 트 가 유랑기 에서 주 해석 엔진 이 dom 에 대한 해석 작업 을 막 는 것 을 피하 기 위해 dom 에 대한 렌 더 링 을 합 니 다.일반적인 원칙 은 스타일 이 앞 에 있 고 dom 문서,스 크 립 트 가 맨 뒤에 있 는 것 입 니 다.먼저 분석 하고 렌 더 링 한 다음 script 순 서 를 실행 합 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기