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 相关文章推荐
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
javascript中attribute和property的区别详解
Jun 05 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
jQuery展示表格点击变色、全选、删除
Jan 05 Javascript
Angular 2.x学习教程之结构指令详解
May 25 Javascript
详解webpack分包及异步加载套路
Jun 29 Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 Javascript
pageGroup.js实现分页功能
Jul 27 Javascript
JavaScript使用localStorage存储数据
Sep 25 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
vue使用nprogress实现进度条
Dec 09 Javascript
浅谈vuex为什么不建议在action中修改state
Feb 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
PHP新手上路(十四)
2006/10/09 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Django和Flask框架优缺点对比
2019/10/24 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
大学生个人求职信例文
2014/07/07 职场文书
2014年中秋寄语
2014/08/11 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
企业承诺书格式范文
2015/04/28 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
python脚本框架webpy模板赋值实现
2021/11/20 Python