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 字符串连接的性能问题(多浏览器)
Nov 18 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
Feb 04 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
Jun 28 Javascript
jquery easyui combobox模糊过滤(示例代码)
Nov 30 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 Javascript
jquery实现浮动的侧栏实例
Jun 25 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 Javascript
jQuery插件实现图片轮播特效
Jun 16 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 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
星际流派综述
2020/03/04 星际争霸
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python中format函数如何使用
2020/06/22 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
商场经理竞聘演讲稿
2014/01/01 职场文书
50岁生日感言
2014/01/23 职场文书
保护母亲河倡议书
2014/04/14 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
端午节演讲稿
2014/05/23 职场文书
市场营销策划方案
2014/06/11 职场文书
党课心得体会范文
2014/09/09 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
公司开会通知
2015/04/20 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
海弦WR-800F
2022/04/05 无线电