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插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
jquery实现用户打分评分特效
May 28 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
基于JavaScript实现树形下拉框
Aug 10 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
基于vue组件实现猜数字游戏
May 28 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
Vue.js 中的 v-show 指令及用法详解
Nov 19 Javascript
20个必会的JavaScript面试题(小结)
Jul 02 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
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php实现网站留言板功能
2015/11/04 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python中自定义函数的教程
2015/04/27 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
基于python的字节编译详解
2017/09/20 Python
python实现简单遗传算法
2018/03/19 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
简单分析python的类变量、实例变量
2019/08/23 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
Python多分支if语句的使用
2020/09/03 Python
python opencv肤色检测的实现示例
2020/12/21 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
C#笔试题集合
2013/06/21 面试题
《小鹰学飞》教学反思
2014/04/23 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
HttpClient实现表单提交上传文件
2022/08/14 Java/Android
详解MySQL的内连接和外连接
2023/05/08 MySQL