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动画制作滑动菜单项效果实现步骤及代码
Feb 07 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
Dec 08 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
Jquery EasyUI $.Parser
Jun 02 jQuery
vue 注册组件的使用详解
May 05 Javascript
Angular6新特性之Angular Material
Dec 28 Javascript
webpack优化之代码分割与公共代码提取详解
Nov 22 Javascript
小程序实现长按保存图片的方法
Dec 31 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
Jul 17 Javascript
微信小游戏中three.js离屏画布的示例代码
Oct 12 Javascript
vue项目中js-cookie的使用存储token操作
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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python3实现定时任务的四种方式
2019/06/03 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
高三高考决心书
2014/03/11 职场文书
广告创意求职信
2014/03/17 职场文书
学历公证委托书
2014/04/09 职场文书
四查四看整改措施
2014/09/19 职场文书
五年级小学生评语
2014/12/26 职场文书
大学生入党自传2015
2015/06/26 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python