IE与Firefox在JavaScript上的7个不同句法分享


Posted in Javascript onOctober 30, 2011

在这篇文章中,作者介绍了7个在IE和Firefox中不同的JavaScript句法。

IE与Firefox在JavaScript上的7个不同句法分享
1. CSS "float" 值

访问一个给定CSS 值的最基本句法是:object.style.property,使用驼峰写法来替换有连接符的值,例如,访问某个ID为"header"的<div>的 background-color值,我们使用如下句法:

document.getElementById("header").style.backgroundColor= "#ccc";

但由于"float"这个词是一个JavaScript保留字,因此我们不能用 object.style.float来访问,这里,我们可以在两种浏览器中这么做:

在IE中这样写:

document.getElementById("header").style.styleFloat = "left";

在Firefox中这样写:
document.getElementById("header").style.cssFloat = "left";

2. 元素的推算样式
JavaScript可以使用object.style.property句法,方便地在外部访问和修改某个CSS样式,但其限制是这些句法只能取出已设的行内样式或者直接由JavaScript设定的样式。并不能访问某个外部的样式表。为了访问元素的"推算"样式,我们可以使用下面的代码:

在IE中这样写:

var myObject = document.getElementById("header"); 
var myStyle = myObject.currentStyle.backgroundColor;

在Firefox中这样写:
var myObject = document.getElementById("header"); 
var myComputedStyle = document.defaultView.getComputedStyle(myObject, null); 
var myStyle = myComputedStyle.backgroundColor;

3. 访问元素的"class"
像"float"一样,"class"是JavaScript的一个保留字,在这两个浏览器中我们使用如下句法来访问"class"。

在IE中这样写:

var myObject = document.getElementById("header"); 
var myAttribute = myObject.getAttribute("className");

在Firefox中这样写:
var myObject = document.getElementById("header"); 
var myAttribute = myObject.getAttribute("class");

This syntax would also apply using the setAttribute method.

4. 访问<label>标签中的"for"
就第3点中所提到的,我们同样需要使用不现的句法区分来访问<label>标签中的"for":

在IE中这样写:

var myObject = document.getElementById("myLabel"); 
var myAttribute = myObject.getAttribute("htmlFor");

在Firefox中这样写:
var = document.getElementById("myLabel"); 
var myAttribute = myObject.getAttribute("for");

5. 获取鼠标指针的位置
计算出鼠标指针的位置对你来说可能是非常少见的,不过当你需要的时候,在IE和Firefox中的句法是不同的。这里所写出的代码将是最最基本的,也可能是某个复杂事件处理中的某一个部分。但他们可以解释其中的异同点。同时,必须指出的是结果相对于Firefox,IE会有更在的不同,这种方法本身就是有BUG的。通常,这种不同可以用"拖动位置"来得到补偿,但,那是另外一个主题的文章了: ) !

在IE中这样写:

var myCursorPosition = [0, 0]; 
myCursorPosition[0] = event.clientX; 
myCursorPosition[1] = event.clientY;

在Firefox中这样写:
var myCursorPosition = [0, 0]; 
myCursorPosition[0] = event.pageX; 
myCursorPosition[1] = event.pageY;

6. 获取可见区域、窗口的大小
有时,我们会需要找到浏览器的可视位置的大小,通常我们称之为"可见区域"。

在IE中这样写:

var myBrowserSize = [0, 0]; 
myBrowserSize[0] = document.documentElement.clientWidth; 
myBrowserSize[1] = document.documentElement.clientHeight;

在Firefox中这样写:
var myBrowserSize = [0, 0]; 
myBrowserSize[0] = window.innerWidth; 
myBrowserSize[1] = window.innerHeight;

7. Alpha 透明
好吧,这并不是一个JavaScript句法问题,而是源自于CSS的Alpha透明。但当某个物体需要淡入/出则需要JavaScript来表现,这是通过访问CSS的Alpha透明设置来完成的,通常在一个循环中完成。你需要通过来修改的JavaScript的代码如下::

在IE中这样写:

#myElement { filter: alpha(opacity=50); }

在Firefox中这样写:

#myElement { opacity: 0.5; }

在IE中这样写:

var myObject = document.getElementById("myElement"); 
myObject.style.filter = "alpha(opacity=80)";

在Firefox中这样写:
var myObject = document.getElementById("myElement"); myObject.style.opacity = "0.5";
Javascript 相关文章推荐
javascript中的void运算符语法及使用介绍
Mar 10 Javascript
jquery统计复选框选中示例
Nov 05 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
jquery Ajax 全局调用封装实例详解
Jan 16 Javascript
利用types增强vscode中js代码提示功能详解
Jul 07 Javascript
解决修复npm安装全局模块权限的问题
May 17 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
使用Typescript和ES模块发布Node模块的方法
May 25 Javascript
加载 Javascript 最佳实践
Oct 30 #Javascript
js判断是否为数组的函数: isArray()
Oct 30 #Javascript
JS trim去空格的最佳实践
Oct 30 #Javascript
js中更短的 Array 类型转换
Oct 30 #Javascript
JavaScript Array Flatten 与递归使用介绍
Oct 30 #Javascript
关于图片按比例自适应缩放的js代码
Oct 30 #Javascript
js 弹出菜单/窗口效果
Oct 30 #Javascript
You might like
15种PHP Encoder的比较
2007/03/06 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
php中异常处理方法小结
2015/01/09 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
python中常用的九种预处理方法分享
2016/09/11 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
学Python 3的理由和必要性
2019/11/19 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
党日活动总结
2014/05/07 职场文书
教师师德考核自我评价
2014/09/13 职场文书
毕业生个人自荐书
2015/03/05 职场文书
南京南京观后感
2015/06/02 职场文书
音乐之声观后感
2015/06/04 职场文书
学校隐患排查制度
2015/08/05 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
靠谱准确的求职信
2019/04/02 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
Redis 常见使用场景
2021/08/30 Redis