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 操作文件 实现方法小结
Jul 02 Javascript
学习ExtJS fit布局使用说明
Oct 08 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
Apr 04 Javascript
jquery click([data],fn)使用方法实例介绍
Jul 08 Javascript
javascript制作的cookie封装及使用指南
Jan 02 Javascript
js动态切换图片的方法
Jan 20 Javascript
jQuery 回调函数(callback)的使用和基础
Feb 26 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
May 19 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
从零学习node.js之mysql数据库的操作(五)
Feb 24 Javascript
JS实现十分钟倒计时代码实例
Oct 18 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 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翻页类
2009/06/01 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
解析php中const与define的应用区别
2013/06/18 PHP
定义select的边框颜色
2008/04/28 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
关于python中的xpath解析定位
2020/03/06 Python
python实现126邮箱发送邮件
2020/05/20 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
小学四年级学生评语
2014/12/26 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
python脚本框架webpy模板控制结构
2021/11/20 Python