2012-04-24 4 views
1

이미 작동중인 proxy.pac 파일이 있습니다. 고객이 웹 브라우저에 따라 다른 프록시 서버를 사용하고 싶습니다.PAC (프록시 자동 구성) navigator.appName을 사용할 수 없습니다.

아무 문제 없습니다. 거기 밖으로 많은 자바 스크립트 발췌 문장, 브라우저 이름/버전을 감지 할 수 있습니다.

찾은 샘플은 모두 "navigator.appName"을 사용합니다. 정규 웹 사이트에서 테스트하면 정상적으로 작동합니다. 내 프록시 .pac에 넣으면 작동하지 않습니다. 네비게이터 객체가 존재하지 않는 것처럼 보입니다.

사용자 에이전트에 따라 프록시를 전환하는 제안이있는 사람이 있습니까?

내 목표는 모든 IE6이 특정 프록시를 사용하며 나머지는 기본 프록시 만 사용한다는 것입니다.

배경 : IE6은 기본 프록시에서 사용되는 Kerberos 인증을 지원하지 않습니다. 따라서 LDAP 인증을 사용하여 추가 프록시를 설정했습니다.

미리 도움을 청하십시오.

답변

0

아마 예를
if (typeof(someIESpecificFunction) != "undefined")
에 사용 또는 시도 및 캐치
을 사용하거나 미묘한에 대한 몇 가지 내장 기능의 결과를 비교, 한 자리 수있는 브라우저 사이에 작거나 더 미묘한 자바 스크립트 엔진의 차이가 있습니다 차이

http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(ECMAScript)http://www.robertnyman.com/javascript/index.html은 도움이 될 수 있을까요?

업데이트 : 또 하나의 브라우저 버전 고유의 동작 :

http://technet.microsoft.com/en-us/library/dd361918.aspx에서 :

function FindProxyForURL(url, host) 
    { 
     if(weekdayRange("WED", "SAT", "GMT")) 
      return "PROXY proxy:80"; 
     else 
      return "DIRECT"; 
    } 

weekdayRange (<DAY1> [<DAY2>] [<GMT>]) 함수가 반환 현재 시스템 시간이 매개 변수로 지정된 범위 내에 속하는지 여부 < 일 1 >, < 일 2 > 및 < GMT> 첫 번째 매개 변수 만 필요합니다. GMT 매개 변수는 현지 시간대가 아닌 GMT로 찍을 시간을 설정합니다. 함수가 <DAY1> == <DAY2> 불려

참고 이전 버전의 Internet Explorer는 넷스케이프 네비게이터와 결과와 다른 결과를 얻을 것입니다. 특히 이전 버전의 Internet Explorer는이 요일 범위를 전체 1 주일로 해석하지만 Internet Explorer 6과 Netscape Navigator는 범위를 하루로 해석합니다. 예를 들어, 현재 날짜가 월요일 인 경우 weekdayRange ("TUE", "TUE") 호출은 이전 버전의 Internet Explorer에서는 TRUE를 반환하고 Internet Explorer 6과 Netscape Navigator에서는 FALSE를 반환합니다.

업데이트 2 :http://blogs.msdn.com/b/wndp/archive/2006/07/18/ipv6-wpad-for-winhttp-and-wininet.aspx 하나에 따르면 (예를 들어 크롬에 대해 여기에 언급과 같은 다른 브라우저와, 이러한 확장을 지원하지 않을 수 있습니다 http://code.google.com/p/pactester/issues/detail?id=9를) 이전의 IE 버전에서도 IE7을 구별 할 수 있어야한다

정보를 바탕으로 IE 5.5, IE 6, IE 7, IE 8, IE 9를 구분할 수 있어야합니다.

유용한 정보가 있으면 알려 주시기 바랍니다.

+0

늦게 답장을 보내 주셔서 감사합니다. 나는 해결책을 찾지 못 했으므로 제대로 작동했다. 나는 브라우저에 PHP 스크립트 proxy.php를 지시한다.이 스크립트는 사용자 에이전트 헤더를 파싱하고 ie6 용 하나의 proxy.pac을 보내고 다른 하나는 proxy.pac을 보낸다. – casper

0

Conditional Compilation : const ifIE = /*@[email protected]*/false;을 통해 PAC 스크립트의 IE를 검색해보십시오.
조건부 컴파일은 새롭거나 오래된 IE/Edge 버전에 따라 다를 수 있습니다.

이 답변에 대한 테스트를 수행하지 않았습니다. 의견에 문제가 없다면 알려주십시오.

관련 문제