>  기사  >  웹 프론트엔드  >  Detector.js 플러그인은 호환성 감지 코드를 구현합니다.

Detector.js 플러그인은 호환성 감지 코드를 구현합니다.

小云云
小云云원래의
2018-02-01 09:58:282535검색

사실 Detector.js 플러그인의 코드는 매우 짧지만 모든 기능을 갖추고 있습니다.

(1) 캔버스 호환성을 결정합니다.

(2) webgl 호환성을 확인합니다.

(3) 페이지에 비호환성 프롬프트 정보를 추가합니다.

이 세 가지 기능만으로도 호환성 감지에 충분합니다.

이 글에서는 Three.js가 Detector.js 플러그인을 사용하여 호환성 감지를 구현하는 방법에 대한 관련 정보를 주로 소개합니다. 이 글은 샘플 코드를 통해 이를 매우 자세하게 소개하며 모든 사람의 연구 또는 학습에 도움이 됩니다. 필요해요 친구들, 함께 살펴볼까요? 그것이 모두에게 도움이 되기를 바랍니다.

사용 방법도 매우 간단합니다.

먼저 페이지에 플러그인을 소개합니다.

<script src="examples/js/Detector.js"></script>

그런 다음 js에 판단을 추가합니다.

if ( ! Detector.webgl ) Detector.addGetWebGLMessage();

호환성 감지가 매우 간단하게 구현됩니다. 바야.

아래에 Detector.js 플러그인 코드를 첨부하세요:

/** 
 * @author alteredq / http://alteredqualia.com/ 
 * @author mr.doob / http://mrdoob.com/ 
 */ 
 
var Detector = { 
 
 canvas: !! window.CanvasRenderingContext2D, 
 webgl: ( function () { 
 
 try { 
 
  var canvas = document.createElement( 'canvas' ); return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) ); 
 
 } catch ( e ) { 
 
  return false; 
 
 } 
 
 } )(), 
 workers: !! window.Worker, 
 fileapi: window.File && window.FileReader && window.FileList && window.Blob, 
 
 getWebGLErrorMessage: function () { 
 
 var element = document.createElement( 'p' ); 
 element.id = 'webgl-error-message'; 
 element.style.fontFamily = 'monospace'; 
 element.style.fontSize = '13px'; 
 element.style.fontWeight = 'normal'; 
 element.style.textAlign = 'center'; 
 element.style.background = '#fff'; 
 element.style.color = '#000'; 
 element.style.padding = '1.5em'; 
 element.style.width = '400px'; 
 element.style.margin = '5em auto 0'; 
 
 if ( ! this.webgl ) { 
 
  element.innerHTML = window.WebGLRenderingContext ? [ 
  'Your graphics card does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" rel="external nofollow" rel="external nofollow" style="color:#000">WebGL</a>.<br />', 
  'Find out how to get it <a href="http://get.webgl.org/" rel="external nofollow" rel="external nofollow" style="color:#000">here</a>.' 
  ].join( '\n' ) : [ 
  'Your browser does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" rel="external nofollow" rel="external nofollow" style="color:#000">WebGL</a>.<br/>', 
  'Find out how to get it <a href="http://get.webgl.org/" rel="external nofollow" rel="external nofollow" style="color:#000">here</a>.' 
  ].join( '\n' ); 
 
 } 
 
 return element; 
 
 }, 
 
 addGetWebGLMessage: function ( parameters ) { 
 
 var parent, id, element; 
 
 parameters = parameters || {}; 
 
 parent = parameters.parent !== undefined ? parameters.parent : document.body; 
 id = parameters.id !== undefined ? parameters.id : 'oldie'; 
 
 element = Detector.getWebGLErrorMessage(); 
 element.id = id; 
 
 parent.appendChild( element ); 
 
 } 
 
}; 
 
// browserify support 
if ( typeof module === 'object' ) { 
 
 module.exports = Detector; 
 
}

관련 권장 사항:

JS의 위치 해결 방법:고정 호환성 문제

js에서 호환성 오류가 발생하기 쉬운 문제에 대한 요약

JavaScript의 호환성 성능에 대한 자세한 분석

위 내용은 Detector.js 플러그인은 호환성 감지 코드를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.