2011-09-01 6 views
0

이것은 나에게 정말로 간단한 문제인 것처럼 보이지만 모든 가능한 검색 문자열을 찾았음에도 불구하고 대답을 찾을 수 없습니다.jquery (document) .ready()가 IE 7+에서 실행되지 않음

나는 JQuery와 1.5.1을 사용하여 여러 경우 클릭 이벤트 페이지가로드를 결합하는 $ (문서) .ready() 함수를 사용하려고 해요. 결국 나는이 작은 것으로 문제를 좁혀 : 나는 페이지를로드 할 때 IE 6, 7에서

$(document).ready(function(){ 
    alert('hello world'); 
}); 

, 8 나는 안녕하세요 세계 경고를 볼 수 없습니다. IE 9처럼,하지만 작동 등 FF, 크롬, 사파리

종류의 근무가 500ms의 JS 제한 시간에 경고를 포위했다 해결책. 이것은 때로는 효과가있는 것 같지만 일관되게 충분하지는 않습니다. 내가 생각할 수있는

유일한 가능성이 스크립트는 페이지의 HTML의 body 태그 안에 잘로드 할 일이 있기 때문에,이 준비() 함수를 엉망으로 될 수 있다는 점이다. 그렇다면 솔루션이 무엇인지 알 수 없습니다.

UPDATE

확인, 작은 페이지를 테스트 한 후 나는 (내가 그 완전히 다른 문제 같아요,하지만 알림 없음) IE에서 작동 할 준비가 문서를 얻을 수 있습니다.

당신이 페이지에 자바 스크립트 파일을로드 할 수있는 측면에서 IE에 대한 어떤 단점이 있습니까?

+1

더 많은 것을 – n8wrl

+0

페이지에서 확인할 수 있습니다. jQuery 1.5.1을 사용하고 있습니까? IE <8의 jQuery 1.5에 문제가 있습니다. 실제로 1.5를 사용하고 있다면 더 자세히 설명 할 수 있습니다. –

+0

확실히 100 % 1.5.1 – scott

답변

0

그래서 나는 VM에서 사용하고있어 IE 브라우저가 잘못되는 결론에 도달하고있어이 덤비는 후. 버튼과 아약스 호출이 제대로 작동하지 않는 문제는 javascript의 변경 사항과 상관없이 무작위적이고 간헐적 인 것으로 보입니다. 나는 문서가 준비되어 있고 브라우저가 다른 방법으로 실패하고 있다고 생각한다. 지금 일하고있는 것 같습니다.

나는 IE7이 문제를 했어
0

jQuery $와 충돌 할 수있는 다른 javascript 파일이 있습니까?

행동 페이지가로드,

if (typeof jQuery == 'undefined') { 
     var script = document.createElement('script'); 
     script.type = 'text/javascript'; 
     script.src = 'js/jquery/1.4.4/jquery.min.js'; 
     document.getElementsByTagName('head')[0].appendChild(script); 
     setTimeout(checkjQuery, 0); 
    } 
    function checkjQuery() { 
     if (typeof jQuery == 'undefined') { 
      setTimeout(checkjQuery, 0); 
     } else { 
      jQuery.noConflict(); 
     } 
    }; 
+0

저는 프로토 타입을 나란히 사용하고 있습니다.하지만 저는 var jq = jQuery.noConflict()'가 작동합니다. 그리고 그것에 아무런 문제가 없었습니다. – scott

+1

@scott : 스크립트가 주기적으로 완전히 작동하지 않는 것을 제외하고는? –

0

페이지의 BODY 내부 $(document).ready를 사용할 필요가 없습니다 테스트. SCRIPT 태그가 페이지의 HEAD에있을 때 사용하거나, 필요한 모든 본문 요소가 닫힐 때까지 SCRIPT 태그를 추가하지 마십시오.

+0

body 태그 외부로 이동하더라도 여전히 작동하지 않습니다. 이것은 MVC 응용 프로그램의 일부이므로 어디에서나 공유 할 수있는 사이트 헤더 파일과 사이트 바닥 글 파일이 있습니다. 이 스크립트를 어디에나로드하는 것은 의미가 없습니다. – scott

1

당신은 type="" 속성에 무엇을해야합니까? IE는 그 속성에 관해서는 매우 엄격합니다. 해당 속성을 지정하면 "text/javascript"을 포함해야합니다. 그렇지 않으면 IE는이를 무시합니다.

0

는, 내가

<script type='text/javascript' language='javascript'> 

에 첫 번째 스크립트 태그를 변경

<script type='application/javascript' language='javascript'> 
$(document).ready(function() { ... }) 
</script> 

를 사용하여 작동하도록 보인다 된 것으로 보인다. 희망이 도움이됩니다.

관련 문제