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 相关文章推荐
js的.innerHTML = ""IE9下显示有错误的解决方法
Sep 16 Javascript
jquery中常用的函数和属性详细解析
Mar 07 Javascript
JS实现的车标图片提示效果代码
Oct 10 Javascript
Bootstrap每天必学之表单
Nov 23 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
JS实现上下左右对称的九九乘法表
Feb 22 Javascript
javascript 数组的定义和数组的长度
Jun 07 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
Nov 11 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
使用pkg打包Node.js应用的方法步骤
Oct 19 Javascript
express框架中使用jwt实现验证的方法
Aug 25 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模拟js函数unescape的函数代码
2012/10/20 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
重写javascript中window.confirm的行为
2012/10/21 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
python查找指定具有相同内容文件的方法
2015/06/28 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
python机器学习之随机森林(七)
2018/03/26 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python 同时读取多个文件的例子
2019/07/16 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
优秀女职工事迹材料
2014/02/06 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
业务员岗位职责范本
2015/04/03 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
MySQL基于索引的压力测试的实现
2021/11/07 MySQL