2013-02-11 2 views
1

나는이 :리디렉션하지 IE 사용자를 내 헤더

<!--[if lte IE 8]> 
<meta http-equiv="refresh" content="0; url=/ie-sucks" /> 
<script type="text/javascript"> 
    /* <![CDATA[ */ 
    window.top.location = '/ie-sucks'; 
    /* ]]> */ 
</script> 

위의 코드를 쉽게 ie-sucks

그래서이 제대로 작동 다른 곳으로 IE 8 <을 사용하고있는 사용자를 리디렉션 , 그러나 나는 사용자를 확인하고 있었는데, 그들이/ie-sucks로 리디렉션 한 후 Mozilla Firefox를 열고 주소 표시 줄에 mysite.com/ie-sucks를 다시 복사하여 다시 그 페이지를 만난다.

,

내가이와 IE 사용자를 고정 ... 나는이 바보 알고 있지만, 나는 그들이 IE8보다 또는 다른 브라우저를 사용하여 아래에 있지 않은 경우 주요 사이트에 해당 페이지에서 리디렉션해야합니다

<!--[if !lte IE 8]> 
그러나이 코드는 Fiefox 사용자에 적용되지 않습니다 ...

나는 비 IE 사용자를 감지하고 리디렉션 수있는 방법

? 사전

답변

1

<!--[if ... ]>은 IE에서만 처리됩니다.

Firefox 나 다른 브라우저를 리디렉션하려면 사용자 에이전트별로 구분해야합니다 (하지만 사용자 에이전트를 변경하는 것은 매우 간단합니다!). 이 예를 들어 사용하여 PHP를 수행 할 수 있습니다 : 다시

if(navigator.userAgent.indexOf('MSIE') == -1) { ... 

:하지만

<?php 

$useragent = $_SERVER['HTTP_USER_AGENT']; //get the user agent 

if(!strpos($useragent, "MSIE")) { 
    // user agents from IE should always look like this and include 'MSIE': 
    // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64) 
    header("Location: http://example.com/"); 
} 

?> 

이 같은 사용자 에이전트를 처리하여 자바 스크립트의 방법이 될 수도있을 수 있음을 명심하십시오 문자열 내에 "MSIE"가 있거나 사용자가 Internet Explorer를 사용할 수있는 사용자 에이전트는이를 "Firefox"또는 다른 것으로 변경합니다. 따라서 이것은 안전한 솔루션은 아니지만 귀하의 질문에 대한 해답이 될 수 있습니다.

추신 : 어쨌든 누군가가 IE 조건부에서 브라우저로 URL을 복사해야하며 "IE가 필요 없습니다."라는 메시지가 표시되는 이유는 무엇입니까? 이 일을하는 사람은 IE를 실제로 사용하지 않으므로 혼동하지 않아야합니다. 당신은 많은 생각을하고 있습니다. 다른 사람들이 할 모든 행동을 알아낼 수는 없습니다.) 내가 말했듯이

+0

으로 바보 같지만 웹 사이트 사용자가이 작업을 수행하고 있으며 Google 애널리틱스에서 추적하고 있으며 그 중 2 명이 IE 페이지를 보았습니다 경고, 그리고 나서 Firefox를 열어 정확한 페이지 URL을 붙여 넣기 만하면 Firefox에서 그 페이지를 보았습니다. – behz4d

+0

Hehe, 그것은 사용자의 행동에 대해 생각하는 좋은 방법입니다. 모든 가능한 생각을 "수정"하십시오.내가 때때로 똑같이하고있는 것처럼 그것은 나 일 수 있었다. 소스 코드를보고 URL을 시험해보고 다른 프로그래머가 그러한 부분을 어떻게 해결했는지 살펴보십시오. 그러나이 2 명의 사용자는 얼마나 많은 비율을 계산합니까? 그들이 50 %라면, 당신은 정말로 신경 써야합니다. 그들이 단지 0.005 %라면 시도하도록하십시오;) – ConcurrentHashMap

1

당신은 단지 당신이하려는 일을 노트에 자신을 묶어거야에서

감사합니다.

사용자가 원래 조건문에서 IE8 이하를 사용하는 경우 페이지 상단에 메시지를 표시하는 것은 어떻습니까?

메시지를 보내면 브라우저를 업그레이드하거나 Chrome, Firefox 등을 다운로드하고 메시지를 닫거나 숨길 수있는 기능 만 있으면됩니다.

<!--[if lte IE 8]> 
    .my-message { 
     display: block; 
    } 
<![endif]--> 
관련 문제