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 Dialog 弹出层对话框插件
Aug 09 Javascript
kmock javascript 单元测试代码
Feb 06 Javascript
javascript开发随笔二 动态加载js和文件
Nov 25 Javascript
解析JSON对象与字符串之间的相互转换
Dec 18 Javascript
使用Browserify配合jQuery进行编程的超级指南
Jul 28 Javascript
js实现内容显示并使用json传输数据
Mar 16 Javascript
使用jQuery制作基础的Web图片轮播效果
Apr 22 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 Javascript
JavaScript实现简单轮播图效果
Dec 01 Javascript
JavaScript时间与时间戳的转换操作实例分析
Dec 07 Javascript
js实现简单掷骰子小游戏
Oct 24 Javascript
javascript自定义加载loading效果
Sep 15 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启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
PHP 图片处理
2020/09/16 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
编程输出如下图形
2013/11/24 面试题
档案接收函
2014/01/13 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
省文明单位申报材料
2014/05/08 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
单位工作证明格式模板
2014/10/04 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
2016继续教育研修日志
2015/11/13 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书