2011-10-15 3 views
0

IE에서 잘 작동하지만 Safari에서는 작동하지 않는 이상한 점이 있습니다. 내 코드는 다음과 같습니다.콘텐츠가로드 될 때까지 본문 숨기기 - Safari가 아닌 IE에서 작동합니까?

<script type="text/javascript"> 
$(document).ready(function(){ 
$('body').css('display', 'block'); 
});</script> 

</head> 
<body style="margin:0; display:none;"> 

목표는 문서 준비가 완료 될 때까지 바디 디스플레이를 none으로 설정하는 것입니다. 그런 다음 표시 속성을 block으로 변경하십시오.

내가 여기 잘못 생각한 이유는 무엇입니까?

+0

이 가 http://jsfiddle.net/Vkzcd/ – biziclop

+0

이 나쁜 생각 날 (맥 사파리)를 위해 작동하는 것 같다. 자바 스크립트를 사용하지 않는 사용자는 아무 것도 볼 수 없습니다. – thirtydot

+0

이상한. 실제로 jsfiddle 사이트에서 작동한다는 것을 알았습니다. 코드와 관련하여 몇 가지 다른 일이 있습니다. 저기 갈등이 있어야합니다 ... – user624385

답변

1

페이지를 표시하기 전에 페이지를 실제로 준비 (이미지로드도 가능)하려면 jQuery의 .load()를 사용해야합니다. 반면에 자바 스크립트가 해제 된 사용자는 사이트가 추락 한 것으로 간주되므로 css로 본문을 숨기면 안됩니다. 물론 당신이 100 % 자바 스크립트 종속 응용 프로그램을 만드는 경우가 아니면.

+0

누가 자바 스크립트를 사용하지 않습니까? 확실히 일반 사용자는 아닙니다. 설정을 찾으려면 사냥을해야합니다. 나는 99 %의 사람들이 불이행으로 설정하고 두 번 생각하지 않을 것이라고 내기하고 있습니다. 내가 잘못? – user624385

+0

꽤 교양있는 내기로 들립니다. 1 %는 그리 많지는 않지만 1 %는 화가 났을 것입니다. 그러나 다시 한 번 그들에 대한지지를 떨어 뜨리는 것은 자신의 결정입니다. 나 자신은 내 자신의 프로젝트에서 IE를 지원하지 않으며, 이것은 약간 더 큰 비율이다. – JNissi

+0

그리고 내가 잊은 한 가지. Java 스크립트가 다른 이유로 다운로드되지 않으면 사용자가 내용을 전혀 볼 수 없습니다. 또한이 방법은 내용과 자바 스크립트가 많은 경우 빈 페이지가 표시 될 수 있습니다. 더 나은 접근 방식은 기본적으로 점진적 향상입니다. 안에 CSS를 추가하고 페이지 내용을로드 한 후 의 끝에 을로드하십시오. – JNissi

2

나는 자바 스크립트 인 경우 가 즉시로드하지만이 활성화 된 경우 문서가 준비 될 때까지이 디스플레이에 대기 활성화되지 않도록 조건부 코드의 일종을 추가 할 수 있습니까?

예, 당신은 할 수 있습니다

<script type="text/javascript"> 
$(function(){ 
    $('body').css('display', 'block'); 
}); 
</script> 
</head> 
<body> 
<script type="text/javascript"> 
    $('body').css('display','none'); // this will execute before $(document).ready() 
</script> 
관련 문제