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获取地址栏参数
Dec 22 Javascript
求得div 下 img的src地址的js代码
Feb 28 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 Javascript
Vue3 中的数据侦测的实现
Oct 09 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
Oct 16 Javascript
vue使用require.context实现动态注册路由
Dec 25 Vue.js
JavaScript+HTML实现学生信息管理系统
Apr 20 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
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
php计算一个文件大小的方法
2015/03/30 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Python按钮的响应事件详解
2019/03/04 Python
python for和else语句趣谈
2019/07/02 Python
Python如何计算语句执行时间
2019/11/22 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
学习Python需要哪些工具
2020/09/04 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
专升本个人自我评价
2013/12/22 职场文书
班主任评语大全
2014/04/26 职场文书
课外小组活动总结
2014/08/27 职场文书
社区节水倡议书
2015/04/29 职场文书