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_09_Function与Object
Oct 16 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 Javascript
node vue项目开发之前后端分离实战记录
Dec 13 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
10 种最常见的 Javascript 错误(频率最高)
Feb 08 Javascript
完美解决axios在ie下的兼容性问题
Mar 05 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
亲自动手实现vue日历控件
Jun 26 Javascript
在js中修改html body的样式
Nov 11 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 正则表达式小结
2015/02/12 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
Python SQL查询并生成json文件操作示例
2018/08/17 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
信电学院毕业生自荐书
2014/05/24 职场文书
高中课程设置方案
2014/05/28 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
社团活动总结怎么写
2014/06/30 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
务虚会发言材料
2014/12/25 职场文书
综合办公室岗位职责
2015/04/11 职场文书
学生犯错保证书
2015/05/09 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
离婚案件被告代理词
2015/05/23 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python