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中ajax学习笔记4
Oct 16 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
Oct 21 Javascript
Java File类的常用方法总结
Mar 18 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
Apr 03 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
Jun 21 Javascript
利用Javascript仿Excel的数据透视分析功能
Sep 07 Javascript
Vue.js进行查询操作的实例详解
Aug 25 Javascript
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 jQuery
javascript将16进制的字符串转换为10进制整数hex
Mar 05 Javascript
JS简易计算器实例讲解
Jun 30 Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 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
for循环连续求和、九九乘法表代码
2012/02/20 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python中类型检查的详细介绍
2017/02/13 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Pytorch转tflite方式
2020/05/25 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
编写strcpy函数
2014/06/24 面试题
学校食堂采购员岗位职责
2013/12/05 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
公务员检讨书
2014/11/01 职场文书
学习雷锋主题班会
2015/08/14 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
MySQL分区表管理命令汇总
2022/03/21 MySQL