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 相关文章推荐
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
Jun 26 Javascript
Node.js实现简单聊天服务器
Jun 20 Javascript
jqueryMobile使用示例分享
Jan 12 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
webpack学习教程之前端性能优化总结
Dec 05 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
记一次vue去除#问题处理经过小结
Jan 24 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
Vue左滑组件slider使用详解
Aug 21 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
JS控制表格隔行变色
2006/06/26 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
北京SQL新华信咨询
2016/09/30 面试题
中间件分为哪几类
2012/03/14 面试题
计算机网络专业个人的自我评价
2013/10/17 职场文书
教师节标语大全
2014/10/07 职场文书
音乐会主持人开场白
2015/05/28 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
基于Python实现一个春节倒计时脚本
2022/01/22 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Python 图片添加美颜效果
2022/04/28 Python
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS