2013-07-29 3 views
1

웹킷이 아닌 Opera가 일부 기능에서는 very specific 이었기 때문에 일반적으로 자바 스크립트 the following way을 통해 감지되었습니다.자바 스크립트 (비 웹킷, 비 - 다음, 버전 14-)를 통해 예전 오페라를 감지하는 방법

그러나 Opera는 다음 번에 거의 Chrome 클론으로 감염됩니다.

이전 Opera를 타겟팅하고 Opera를 대상으로하지 않을 수있는 방법은 무엇입니까?


추신 : 저는 브라우저 감지 및 기능 감지 규칙을 알고 있습니다. 하지만 크고 실행중인 프로젝트를 막대한 브라우저 감지 패치로 업데이트하여 수많은 코드를 기능 감지 패러다임으로 다시 작성하기를 바랍니다.

답변

2

문제점의 출처를 찾았습니다. 해당 프로젝트에서 브라우저가 잘못 감지되었습니다. the link given in the question처럼 정확하게 Opera를 감지하면 Opera Next가 Opera로 감지되지 않으므로 Opera 이전 코드는 실행되지 않고 Chrome 특정 코드가 대신 실행됩니다.

!!window.opera;      // true in old Opera, false in Opera Next 

navigator.userAgent.indexOf("Opera");// ------- the same -------- 

추신 : 다행히, 나는 내 프로젝트에 테스트를 많이 가지고, 그래서 나는 새로운 오페라의 일에 그 구글 크롬처럼 정확하게 작동 알 수 있습니다.

문제가 발생 코드의 조각은 오페라 과거와 오페라 다음을 감지하려고 :

/(Opera|OPR)/.test(navigator.userAgent) 

결론 : 오페라 마이그레이션이 아주 잘, 아무것도 프로젝트에서 중단해서는 안되었다. Opera Next를 감지하지 않고 단순히 일반적인 Chrome처럼 취급하십시오.

업데이트 : 이전 Opera 버전 caniuse.com에서갔습니다