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实现的UBB编码函数
Mar 09 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
js如何实现设计模式中的模板方法
Jul 23 Javascript
jquery解决客户端跨域访问问题
Jan 06 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
Sep 15 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
ES6函数和数组用法实例分析
May 23 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
JS Timing
2007/04/21 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
python计算方程式根的方法
2015/05/07 Python
玩转python爬虫之正则表达式
2016/02/17 Python
Python变量和数据类型详解
2017/02/15 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
感恩节红领巾广播稿
2014/02/11 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
给领导的感谢信范文
2015/01/23 职场文书
2015年教师节慰问信
2015/03/23 职场文书
整改通知书
2015/04/20 职场文书
公司员工体检通知
2015/04/21 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
Redis实战高并发之扣减库存项目
2022/04/14 Redis