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 相关文章推荐
仿迅雷焦点广告效果(JQuery版)
Nov 19 Javascript
JavaScript导航脚本判断当前导航
Jul 12 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
Oct 29 Javascript
简单实现Vue的observer和watcher
Dec 21 Javascript
浅谈js中的变量名和函数名重名
Feb 13 Javascript
jQuery在header中设置请求信息的方法
Mar 06 Javascript
JS+DIV实现的卷帘效果示例
Mar 22 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
微信小程序在ios下Echarts图表不能滑动的问题解决
Jul 10 Javascript
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
使用Mock.js生成前端测试数据
Dec 13 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
第六节--访问属性和方法
2006/11/16 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
ie 调试javascript的工具
2009/04/29 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
浅谈vue首屏加载优化
2018/06/28 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
详解Vue数据驱动原理
2020/11/17 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
常见python正则用法的简单实例
2016/06/21 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
python实现多线程网页下载器
2018/04/15 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
python tqdm库的使用
2020/11/30 Python
EJB的角色和三个对象
2015/12/31 面试题
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
新品发布会策划方案
2014/06/08 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
离职感谢信怎么写
2015/01/22 职场文书
干部理论学习心得体会
2016/01/21 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android