javascript跨浏览器的属性判断方法


Posted in Javascript onMarch 16, 2014

今天在写代码的时候发现一个很容易出错的地方。当我们在声明变量时,常常会因为不同的 browser 有不同的 API 定义,然后用以下的写法来判断哪一个属性,例如:

var fullscreenElement = document.mozFullScreenElement || document.webkitFullscreenElement || document.fullscreenElement;

用||来检查要用哪一个 attribute。
不过要小心 javascript 的值当成条件时的判断。
例如:
var sLeft = window.screenLeft || window.screenX; //firefox use screenX
console.log(sLeft);

这段代码希望 screenLeft 会回传 window.screenLeft ,而在 firefox 会回传 window.screenX。
但是如果 screenLeft 刚好等於 0 的时候,就会进入||之后的条件了,接著就 gg 了。

因此建议在值的判断还是正统一点用 hasOwnProperty 或 typeof 来判断会比较精?省?BR>

var sLeft = window.screenLeft;
if( !window.hasOwnProperty('screenLeft')) sLeft = window.screenX;
Javascript 相关文章推荐
javascript之bind使用介绍
Oct 09 Javascript
js hover 定时器(实例代码)
Nov 12 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
Feb 28 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
JS实现将对象转化为数组的方法分析
Jan 21 Javascript
微信小程序3D轮播实现代码
Sep 19 Javascript
JS实现动态无缝轮播
Jan 11 Javascript
原生js生成图片验证码
Oct 11 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 Javascript
Html5生成验证码的示例代码
May 10 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
Mar 16 #Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 #Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 #Javascript
JavaScript表单通过正则表达式验证电话号码
Mar 14 #Javascript
JavaScript运行时库属性一览表
Mar 14 #Javascript
JavaScript中按位“异或”运算符使用介绍
Mar 14 #Javascript
使用jQuery实现的掷色子游戏动画效果
Mar 14 #Javascript
You might like
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
Python实现冒泡排序的简单应用示例
2017/12/11 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python eventlet绿化和patch原理
2020/11/21 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
大学军训通讯稿
2014/01/13 职场文书
室内设计专业自荐信
2014/05/31 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python