2011-09-28 4 views
0

브라우저가 js를 지원하면 애니메이션 로딩을 표시하고 싶습니다. javascript가 사용 중지 된 경우이 경우 이미지는 표시되지만 숨길 수는 없습니다. 내가 직접 태그브라우저가 js를 지원하면 로딩 애니메이션을 표시하는 방법

<?php 
$results = get_browser(); 
if ($results["javascript"] == 1) { 
echo '<div id="loading"><img src="core/design/img/load/load.gif"/></div>'; 
} 
?> 

그리고 내 JS 후이 코드를 썼다이를 위해 는

$(window).load(function(){ 
$('#loading').fadeOut(600); 
}); 

있어 오류 메시지 browscap ini directive not set in 내 아이디어를 실현하기 위해 어떤 제안처럼 보이는? 당신은 그냥 사용할 수 있습니다

+0

[php.ini'에'browscap.ini'를 설정하지 않았습니다.] (http://us2.php.net/manual/en/misc.configuration.php#ini.browscap). 그 말은'get_browser()'는 이런 종류의 일에 신뢰할 수 없다는 것입니다. 브라우저 기능을 테스트하지는 않지만 사용자 에이전트 문자열을 기반으로 목록에서 찾습니다. 브라우저가 _can_가 아닌 브라우저를 실행할 수 있는지 여부를 알려줍니다. 하루 종일 거의 모든 브라우저가 자바 스크립트를 사용할 수 있어야합니다. 그러나 그것들 중 많은 것들은 꺼져 있습니다. 그리고'get_browser()'는 false positive를 산출 할 것입니다. –

+0

[이 답변보기] (http://stackoverflow.com/questions/2036956/browscap-ini-directive-not-set/2036968#2036968) 좀 더 자세한 정보가 필요합니다. –

답변

1

도와주세요 :

<body> 
//set the div to hidden by default 
<div id="loading" style="display:none"><img src="core/design/img/load/load.gif"/></div> 
//place this code directly below the loading div, it will run before page/dom is loaded 
<script type="text/javascript"> 
    document.getElementById('loading').style.display = 'block'; 
</script> 
<script type="text/javascript"> 
    $(function() { 
     //this will run after the page has loaded 
     $('#loading').fadeOut(600); 
    }); 
</script> 
... 

당신이 (위의 솔루션은 빠른하지만) aquastyle.az가하는 무엇을 정확하게 할 경우, 당신은이 작업을 수행 할 수 있습니다

<body> 
<script type="text/javascript"> 
    //if JavaScript is enabled, append the loading div to be body 
    $('body').append('<div id="loading"><img src="core/design/img/load/load.gif" /></div>'); 
</script> 
<script type="text/javascript"> 
    $(function() { 
     //this will run after the page has loaded 
     $('#loading').fadeOut(600); 
    }); 
</script> 
... 
+0

하지만 해결책이 아닙니다. 로드 div는 전체 페이지로드 후에 만 ​​표시됩니다. 하지만이 로딩 div –

+0

을 오해로 전체로드 프로세스를 숨기고 싶습니다. 코드가 업데이트되어 페이지가로드되기 전에 프로그램이 실행됩니다. – Paul

+0

살펴보기 http://aquastyle.az/?lang=en –

0

get_browser 함수는 적절한 INI 파일을 다운로드하여 PHP.ini 파일에 포함해야합니다.

사용자가 자바 스크립트를 사용할 수 있는지 파악하는 대신 점진적 향상의 관점에서 사이트를 구축하면 브라우저 설정에 관계없이 모든 사용자가 사용할 수 있습니다.

또는 자바 스크립트에 쿠키를 설정하도록 요청한 다음 PHP에 쿠키가 있는지 확인할 수 있습니다. 이는 결코 100 % 확실한 방법은 아니지만 상황에 따라 다를 수 있습니다. 당신의 HTML에서

1

, 당신은 이런 식으로 뭔가를 할 수 :

<html class="no-js"> 
... 

그런 다음 페이지가로드되면, 자바 스크립트를 통해 js 클래스로 no-js 클래스를 대체합니다.

$(window).load(function(){ 
    $('html').removeClass('no-js').addClass('js'); 
}); 

마지막으로, CSS에서 브라우저가 js를 지원하면 로딩 이미지를 표시하고 그렇지 않은 경우 숨기십시오.

.js #loading { 
    display: block; 
} 
.no-js #loading { 
    display: none; 
} 

의미가 있습니까?

+0

[Modernizr] (http : //www.modernizr.com /)은''태그에'js' 클래스를 자동으로 추가하여 이런 일을 할 수 있습니다. –

관련 문제