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 相关文章推荐
js wmp操作代码小结(音乐连播功能)
Nov 08 Javascript
juqery 学习之五 文档处理 插入
Feb 11 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
Js点击弹出下拉菜单效果实例
Aug 12 Javascript
javascript对中文按照拼音排序代码
Aug 20 Javascript
AngularJS基础学习笔记之指令
May 10 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
Angular中使用$watch监听object属性值的变化(详解)
Apr 24 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
浅谈JS的原型和继承
May 08 Javascript
关于layui表单中按钮自动提交的解决方法
Sep 09 Javascript
使用axios请求时,发送formData请求的示例
Oct 29 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
《APMServ 5.1.2》使用图解
2006/10/23 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
Yii分页用法实例详解
2014/12/04 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
浅析Python数据处理
2018/05/02 Python
flask-restful使用总结
2018/12/04 Python
200行python代码实现2048游戏
2019/07/17 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
python操作gitlab API过程解析
2019/12/27 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
python实现实时视频流播放代码实例
2020/01/11 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python request中文乱码问题解决方案
2020/09/17 Python
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
擅自离岗检讨书
2014/02/11 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
餐厅筹备计划书
2014/04/25 职场文书
公司应聘求职信
2014/06/21 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
python not运算符的实例用法
2021/06/30 Python
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
搭建Yolov5服务器
2022/04/30 Servers
Java版 简易五子棋小游戏
2022/05/04 Java/Android
css3 选择器
2022/05/11 HTML / CSS
SQL Server中使用表变量和临时表
2022/05/20 SQL Server