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 相关文章推荐
validator验证控件使用代码
Nov 23 Javascript
基于jquery的blockui插件显示弹出层
Apr 14 Javascript
JavaScript中的apply()方法和call()方法使用介绍
Jul 25 Javascript
JS实现简单的顶部定时关闭层效果
Jun 15 Javascript
JavaScript函数节流和函数防抖之间的区别
Feb 15 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
详解如何用模块化的方式写vuejs
Dec 16 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
微信小游戏中three.js离屏画布的示例代码
Oct 12 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检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
取得父标签
2006/11/14 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
迪奥官网:Dior.com
2018/12/04 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
安全教育感言
2014/03/04 职场文书
租房协议书范文
2014/08/20 职场文书
2014年文秘工作总结
2014/11/25 职场文书
英语感谢信范文
2015/01/20 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
各国货币符号大全
2022/02/17 杂记
python语言中pandas字符串分割str.split()函数
2022/08/05 Python