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 相关文章推荐
Js之软键盘实现(js源码)
Jan 30 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
Dec 08 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 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
Apache中php.ini的设置方法
2013/02/28 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
windows下安装Python和pip终极图文教程
2017/03/05 Python
python中的decorator的作用详解
2018/07/26 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Python修改列表值问题解决方案
2020/03/06 Python
Python实现上下文管理器的方法
2020/08/07 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
党员自我评价分享
2013/12/13 职场文书
招聘专员岗位职责
2014/03/07 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
学雷锋日活动总结
2015/02/06 职场文书