2009-09-17 4 views
2

페이지의 HEAD 섹션에 외부 스크립트 파일을로드 한 다음 BODY 태그의 onLoad 섹션에서 해당 함수를 호출하려고하는 응용 프로그램을 실행 중이므로 요청합니다. 분명히, 외부 자바 스크립트 파일이 'hasn 때문에외부 자바 스크립트 파일의로드 순서가 IE8과 IE7이 다른가요?

external.js

function someFunction() 
{ 
    alert("Some message"); 
} 

의 mypage.html

<html> 
    <head> 
    <script type="text/javascript" language="javascript" src="external.js"></script> 
    </head> 
    <body onLoad="someFunction();"> 
    </body> 
</html> 

IE8의 개발자 도구를 사용하여, 나는 예외는에 onLoad 문에 던져 아직로드되지 않았습니다.

저는이 문제가 IE7에서 나오지 않았기 때문에 제 질문에 답했습니다.

IE7과 IE8 사이의로드 순서가 변경 되었습니까? 그렇다면 더 좋은 방법이 있습니까?

감사 (외부 파일에 훨씬 더 잘 실제 함수 참조 많은 다른 기능과 상수), BJ

답변

0

은 무슨 일이 일어나고 있는지 무엇을 당신이 생각하는 일어나고, 당신이 첨부하도록해야한다고 가정 body.onLoad 나중에.

내가 순수 자바 스크립트가 있다고 생각 당신이

$(document).ready(function(){ 
    // Your code here... 
}); 

Event.observe(window, 'load', function() { myFunction.init() }); 

또는 JQuery와 (를 포함하여 JQuery와) 함께 (물론, 프로토 타입 포함) 프로토 타입와 함께 할 수있는 일을 단순화하기 이 문제를 해결할 수있는 방법은 있지만, 문제는 몸체 요소가 아직 존재하지 않기 때문에 거친 것입니다 ...

그렇다고해서 IE8에서는 JavaScript를 사용하여 몸체를 실행하는 데 아무런 문제가 없었습니다. 외부 파일을 사용하여 body 태그에 바로 넣습니다. 나는 호기심에서 지금 그것을 시험 할 것이고, 나는 다시보고 할 것이다.

편집 : 외부 파일에서 온로드를 수행하는 데 아무런 문제가 없습니다. 그러나 우리가 작업하는 동안 JQuery, Prototype 또는 Scriptaculous에 대해 알기를 원할 수 있습니다.

1

나는 그의 웹 사이트가 상당 부분 바뀌 었다고 생각합니다.

는 (개발자 도구를 사용하지 않고)이 시도 : -

<body onload="alert(somefunction)"> 

이 중단해서는 안되며 포인트 온로드는 식별자 somefunction 볼 수 있는지 여부 실행의 여부를 알려줍니다.

2

글쎄, 나는 실제로 매우 어리 석다.

로드 순서에 문제가 없음을 알 수 있습니다. 문제는 외부 자바 스크립트 파일의 함수 중 하나에서 구문 오류가 있었고 예외가 발생했을 때 전체 파일을 완전히 무효화하여 나머지 기능을 기본 페이지에서 사용할 수 없게 만든 것입니다.

이 동작이 IE7과 IE8의 차이점은 확실치 않지만 어쨌든 실제 문제입니다.

답장을 보내 주셔서 감사합니다.

비제이

+1

비제이 아마 당신은 당신의 IE8을 설치 왔을 때, 그것은 당신의 IE 옵션 (즉 인터넷 옵션 -> 고급) 변경했을 수도 있기 때문에이 문제를보고 모든 자바 스크립트 오류를 ​​알려 수표를 제거하지 않았다 – nickytonline

관련 문제