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 面向对象(一)(共有方法,私有方法,特权方法)
May 23 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
Jan 24 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
纯css实现窗户玻璃雨滴逼真效果
Aug 23 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 Javascript
跨域请求两种方法 jsonp和cors的实现
Nov 11 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
原生JavaScript实现进度条
Feb 19 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
随机广告显示(PHP函数)
2006/10/09 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python实现telnet客户端的方法
2015/04/15 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
如何设置Java的运行环境
2013/04/05 面试题
《北京的春节》教学反思
2014/04/07 职场文书
中班幼儿评语大全
2014/04/30 职场文书
市场营销调查计划书
2014/05/02 职场文书
私人委托书格式
2014/09/10 职场文书
社区务虚会发言材料
2014/10/20 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
青年教师听课心得体会
2016/01/15 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis