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实现轮显新闻标题链接
Aug 13 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Oct 20 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
JavaScript对象和字串之间的转换实例探讨
Apr 21 Javascript
javascript函数特点实例分析
May 14 Javascript
Javascript实现单例模式
Jan 24 Javascript
js删除局部变量的实现方法
Jun 25 Javascript
Bootstrap源码解读下拉菜单(4)
Dec 23 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
关于js对textarea换行符的处理方法浅析
Aug 03 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
Python每天必学之bytes字节
2016/01/28 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python Django的web开发实例(入门)
2019/07/31 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
信息管理专业推荐信
2013/10/29 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
Python Django项目和应用的创建详解
2021/11/27 Python
各国货币符号大全
2022/02/17 杂记
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript