코딩에 관한 글을 오랫동안 쓰지 않았습니다. 가장 큰 이유는 최근 작업이 수요 분석에 집중되어 있기 때문입니다. 실제 감정이 없으면 글쓰기에 대한 동기가 없을 것입니다. JScript 실행 순서에 관한 문제를 토론합니다. 샘플 코드는 다음과 같습니다. ->d.htm ->d.htm
a.htm
Click Me! A> < ;A onclick="func2('onclick')" href="d.htm">나를 클릭하세요!
<SCRIPT> ;<br>function func(str)<br>{<br> msg(str);<br> window.location.href="c.htm";<br>}<br>function msg(str)<br>{<br> document.getElementById("msg").innerText=str; //A<br> //alert(str);<br> window.location.href="e.htm" ;<br>}<br></SCRIPT>
msg(str) 줄에 주석이 있으니 테스트하는 동안 A, B를 각각 실행해 보세요.
A
B
마우스업
클릭 시
마우스업
클릭 시
IE
b.htm
d.htm
c.htm
d.htm
파이어폭스
c.htm
->b.htm
A
B
onmouseup
onclick
onmouseup
onclick
IE
b.htm
d.htm
c.htm
d.htm
FireFox
c.htm->b.htm
e.htm->d.htm
c.htm->b.htm
e.htm->d.htm
e.htm
c.htm
->b.htme.htm
1. 뒤로 버튼을 사용하여 a.htm으로 직접 돌아갑니다. 즉, 페이지는 한 번의 점프만 수행합니다.
2. 페이지 스크립트로 이동합니다.
위에서 볼 수 있듯이
1. FireFox의 경우 페이지 스크립트 실행 순서가 항상 브라우저 내장 스크립트 실행 순서보다 우선합니다. 2. IE에서는 HREF의 실행 순서는 onmouseup->href->onclick입니다. 정말?
2의 실행 순서를 보다 명확하게 하기 위해 onclick과 href 간의 실행 순서 관계를 계속 분석합니다. 위의 예에서 onclick은 호출을 통해 실행됩니다. a. 다음 테스트 코드를 사용합니다:
Click Me!
찾기 HREF를 실행할 수 없습니다.
b. 다음 테스트 코드를 사용하는 경우:
Click Me!
onclick의 e.htm 대신 HREF의 d.htm이 여전히 실행되는 것을 발견했습니다.