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简单实现模拟浏览器搜索功能
Dec 21 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
javascript图片预加载完整实例
Dec 10 Javascript
js验证框架实现代码分享
May 18 Javascript
javascript滚轮事件基础实例讲解(37)
Feb 14 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
vscode下vue项目中eslint的使用方法
Jan 13 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
ES6中的Javascript解构的实现
Oct 30 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初学入门
2006/11/19 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
微信小程序 Flex布局详解
2016/10/09 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
vue获取当前激活路由的方法
2018/03/17 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
zbar解码二维码和条形码示例
2014/02/07 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python多进程间通信代码实例
2019/09/30 Python
python 实现视频 图像帧提取
2019/12/10 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
Python类super()及私有属性原理解析
2020/06/15 Python
浅析Python 多行匹配模式
2020/07/24 Python
Python datetime 如何处理时区信息
2020/09/02 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
表彰大会主持词
2014/03/26 职场文书
科技节口号
2014/06/19 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis