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 26 Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 Javascript
js实现div在页面拖动效果
May 04 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
Nov 02 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
javascript滚轮事件基础实例讲解(37)
Feb 14 Javascript
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
redux.js详解及基本使用
May 24 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 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
php中文繁体和简体相互转换的方法
2015/03/21 PHP
微信自定义分享php代码分析
2016/11/24 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
canvas时钟效果
2017/02/16 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
微信小程序实现点击页面出现文字
2020/09/21 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
python递归计算N!的方法
2015/05/05 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
python中np是做什么的
2020/07/21 Python
python logging模块的使用
2020/09/07 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
2013年大学生的自我鉴定
2013/10/24 职场文书
受欢迎的大学生自我评价
2013/12/05 职场文书
小学生新学期寄语
2014/01/19 职场文书
户外活动总结范文
2014/04/30 职场文书
模特大赛策划方案
2014/05/28 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
入党积极分子群众意见
2015/06/01 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
MySQL数据迁移相关总结
2021/04/29 MySQL