2010-04-10 5 views

답변

5

조건부 컴파일을 사용하여 클라이언트가 MSIE를 사용하는지 확인할 수 있습니다. 전용 IE에서

if (IE) { 
    // IE. 
} else { 
    // Others. 
} 

로서 사용될 수

var IE = /*@[email protected]*/false; 

! 컴파일되고 논리적 true하는 새로운 표현 !false, 결과적으로 식 촬영. 이것은 $.browser.msie보다 우수하며, 이는 사용자 에이전트가 속일 수 있으며 document.all보다 우수하기 때문에 특정 오페라 버전에도 영향을 미칠 수 있습니다.

그렇다면 사용 중지하려는 것은 무엇입니까? 반면에 기능 탐지를 사용할 수도 있습니다. 다음은이에 대한 토론의 : Browser detection versus feature detection

+0

jquery fadein 효과가 너무 무거워서 사용할 수 없도록 설정하려고합니다. 세부 사항을 당신을 감사하십시오, 이것은 정확하게 나가하고 싶었던 것이다. – user295292

1

내가 이것을 권하고 싶지 않다,하지만 : 나는 IE에서 작동하도록 스크립트를 수정하거나 제외 할

if(!$.browser.msie) { 
    //non IE script 
} 

어떤 브라우저가 지원하지 않는 기능을 기반으로 ... 그것은 IE이기 때문에가 아닙니다. 모든 브라우저에서 내일 업데이트를 통해 기능을 추가 할 수 있으며 스크립트는 여전히이를 제외합니다. 지형지 물 감지에 대한 자세한 내용은 $.support을 참조하십시오.

"지원되지 않음"으로 인해 실행중인 것을 제외하면 완전히 유효한 시나리오입니다. 그러나 "IE가 그것을 지원하지 않기 때문에 ... 내가이 코드를 작성할 때"를 제외하면 좋은 접근 방법이 아닙니다. 대신 필요한 기능이 있는지 확인하고 현재 브라우저에서 가능한 한 가장 풍부한 경험을 얻을 수 있는지 확인하십시오. 당신이 IE 6의 말하기하는 경우

-2

,이 함수를 호출하여 충돌 할 수 있습니다 : 진심

function crash_IE6() {for(x in document.open);} 

, IE는 document.all의 존재를 확인하고 있습니다 deteting의 가장 사용 방법 ...하지만 여전히 좋은 것은 아닙니다. 스크립트가 실행중인 브라우저를 확인해야합니다. 필요한 메소드가 있는지 확인해야합니다.

+0

투표를 한 사람들은 이유를 설명 할 수 있습니까? : - ° – xavierm02

+0

나는 투표를하지 않았지만 당신의 대답의 첫 줄이 질문과 전혀 관련이 없기 때문에 다른 사람들이 기대할 것입니다. 또한 "스크립트가 실행중인 브라우저를 확인해야합니다."라고 말합니다. 나는 대부분의 사람들이 당신과 동의하지 않을 것이라고 생각합니다. 실행중인 브라우저를 알아야하는 경우가 많이 있습니다. –

+0

나는 네버가 당신이 달리고있는 브라우저가 나쁜 것임을 알고 있다고 말했습니다 ... 이 정보는 틀릴 수도 있습니다 ... 클라이언트가 익스플로잇 시도를 실패로 만들려는 것을 숨길 수 있기 때문에 ... 그러나 그래도 여전히 당신의 탐지가 확실하지 않을 수 있습니다 ... 그리고 그것은 전혀 미래 보장이 아닙니다. 브라우저가 변경되고 모든 브라우저를 감지 할 수 있도록 탐지 항목을 업데이트해야합니다.Feathures 탐지 기능은 미래를 보장하며 동일한 코드를 영원히 유지할 수 있습니다 (사소한 변경 사항이 있음). – xavierm02

1

당신은 모든 Microsoft's recommended way of inserting a conditional comment를 사용하여 IE 브라우저의 자바 스크립트에 포함되지 수 :

<!--[if !IE]> 
<script src="myscript.js" type="text/javascript"></script> 
<![endif]--> 

또는 단순히 주석에서 제외 할 코드를 래핑합니다.

+0

"IE가 아닌"조건부 주석의 구문은 아닙니다. – Quentin

+0

Microsoft 사이트에 따르면 나는 그것에 링크되어 있습니다. 당신이 옳다고 생각하는 것을 기분 좋게 생각한다면, 그렇지 않으면 당신의 의견을 철회하십시오. –

관련 문제