Three.js利用Detector.js插件如何实现兼容性检测详解


Posted in Javascript onSeptember 26, 2017

前言

本文主要给大家介绍了关于Three.js用Detector.js插件实现兼容性检测的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

其实Detector.js插件的代码很短,但是功能很全,

(1)判断canvas兼容。

(2)判断webgl兼容性。

(3)在页面添加不兼容提示信息。

这三个功能已经对兼容性检测足够了。

使用方式也很简单:

首先,将插件引入到页面:

<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( 'div' ); 
 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; 
 
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js关闭子窗体刷新父窗体实现方法
Dec 04 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
Jun 20 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
Aug 05 Javascript
微信小程序 navigation API实例详解
Oct 02 Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
Jan 25 Javascript
JS实现前端页面的搜索功能
Jun 12 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
AngularJS 多指令Scope问题的解决
Oct 25 Javascript
vue 中使用print.js导出pdf操作
Nov 13 Javascript
关于JavaScript回调函数的深入理解
Jun 27 Javascript
JS+jQuery实现注册信息的验证功能
Sep 26 #jQuery
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 #Javascript
JavaScript 自定义事件之我见
Sep 25 #Javascript
详解在vue-cli中使用路由
Sep 25 #Javascript
Bootstrap一款超好用的前端框架
Sep 25 #Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 #Javascript
javascript input输入框模糊提示功能的实现
Sep 25 #Javascript
You might like
为PHP初学者的8点有效建议
2010/11/20 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
javascript实现数独解法
2015/03/14 Javascript
javascript常用的方法整理
2015/08/20 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
2014年端午节活动方案
2014/03/11 职场文书
党员干部公开承诺书
2014/03/26 职场文书
2014年党支部学习材料
2014/05/19 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
会计求职信怎么写
2015/03/20 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书