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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
js字符编码函数区别分析
Jun 05 Javascript
javascript各种复制代码收集
Sep 20 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
详解Matlab中 sort 函数用法
Mar 20 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
浅谈Vue的响应式原理
May 30 Javascript
Js通过AES加密后PHP用Openssl解密的方法
Jul 12 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设计模式 State (状态模式)
2011/06/26 PHP
php 启动报错如何解决
2014/01/17 PHP
php除数取整示例
2014/04/24 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
Python 不同对象比较大小示例探讨
2014/08/21 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Django之模型层多表操作的实现
2019/01/08 Python
python中import与from方法总结(推荐)
2019/03/21 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Python如何安装第三方模块
2020/05/28 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
企业办公室主任岗位职责
2014/02/19 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
小班上学期评语
2014/05/05 职场文书
关于环保的演讲稿
2014/05/10 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书