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实现标签页效果(配合css)
Apr 03 Javascript
Js注册协议倒计时的小例子
Jun 24 Javascript
Jquery选中或取消radio示例
Sep 29 Javascript
JavaScript中this的使用详解
Nov 08 Javascript
JS实现图片产生波纹一样flash效果的方法
Feb 27 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
AngulerJS学习之按需动态加载文件
Feb 13 Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 Javascript
layui 表格操作列按钮动态显示的实现方法
Sep 06 Javascript
JavaScript实现串行请求的示例代码
Sep 14 Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
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
天津市收音机工业发展史
2021/03/04 无线电
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
javascript常用的设计模式
2017/02/09 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
个人自我鉴定总结
2014/03/25 职场文书
作文批改评语
2014/12/25 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
新闻稿格式范文
2015/07/18 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript