2014-01-20 6 views
0

Extjs 4.2를 기반으로 자바 스크립트 webapp을 만듭니다. 이 프레임 워크의 많은 기능은 IE8에서 제대로 작동하지 않습니다 (이전 버전에서는 결과를 알 수 없습니다). IE8 이하와 같은 사용자 에이전트를 사용하여 웹 응용 프로그램의 액세스를 차단하고 메시지를 표시하지 않고 웹 응용 프로그램의 로그인을 피하는 좀 더 깨끗한 방법을 찾고 있습니다. 도움의IE8 이하의 사이트에 대한 액세스를 차단하는 방법은 무엇입니까?

anyType에 내가이 응용 프로그램의 기능이 제대로 작동하지 않을 수 없다는 메시지를 보여줄 것

+1

사이트가 해당 브라우저에서 올바르게 작동하지 않는다고 사용자에게 알리는 경고를 표시하려면 조건문을 사용하여 완전히 차단하지 마십시오. – adeneo

답변

1
if(! Ext.isIE6 || ! Ext.isIE7) { 
    yourapp.init(); 
} else { 
    //show the element that directs people to http://browsehappy.com/ 
} 
+0

아마도 그렇게하는 것이 가장 간단하고 효과적인 방법입니다. 답변 해 주셔서 감사합니다. – AfanfeFana

1

내가 액세스를 차단하지 않을 유용합니다. 액세스 거부는 좋지 않습니다. 당신이 쉽게 IE8 감지 체크 아웃 Conditionizr을 원하고이 IE8 detect (내가 만든) 경우

if (conditionizr.ie8) { 
    // stuff for ie8 
} 

conditionizr.on('ie8', function() { 
    // callbacks 
}); 

을 플러스 당신은 polyfills/기타 자산을로드 할 수

/*! 
* IE8 
* @cc_on Conditional Compilation to test the 
* JavaScript versions 
*/ 
conditionizr.add('ie8', [], function() { 
    var version = false; 
    /*@cc_on if (@_jscript_version > 5.7 && !/^(9|10)/.test(@_jscript_version)) 
    version = true @*/ 
    return version; 
}); 

이 당신을 제공합니다. 아마도 IE8이 아닌 Ext.js를로드 할 수 있으므로 앱이 중단되지 않고 대신 제공됩니다. 당신은 브라우저를 무시할 수 Conditionizr으로

이 너무 !를 사용하여 :

conditionizr.on('!ie8'[, callback]); 
1

그냥 마크 업 내에서 IE's conditional statements 중 하나를 사용하여 여기에 <!--[if lte IE 8]> 블록에 포함 된

<html> 
    ... 
    <body> 
     <!--[if lte IE 8]> 
      <p>Notice: As you are using an old browser some features of this 
       web app may not work for you. Please update.</p> 
     <![endif]--> 
     ... 
    </body> 
</html> 

아무것도하는 인터넷 익스플로러의 모든 버전을 대상으로 IE8보다 작거나 같습니다.

관련 문제