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 相关文章推荐
类似框架的js代码
Nov 09 Javascript
jquery 得到当前页面高度和宽度的两个函数
Feb 21 Javascript
jQuery的Ajax时无响应数据的解决方法
May 25 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
基于jQuery的倒计时实现代码
May 30 Javascript
为jQuery添加Webkit的触摸的方法分享
Feb 02 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
详解webpack+es6+angular1.x项目构建
May 02 Javascript
对angular 实时更新模板视图的方法$apply详解
Oct 09 Javascript
详解vue 路由跳转四种方式 (带参数)
Apr 28 Javascript
微信小程序实现原生步骤条
Jul 25 Javascript
JQuery发送ajax请求时中文乱码问题解决
Nov 14 jQuery
加载 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介绍篇
2010/10/26 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
vue移动端弹框组件的实例
2018/09/25 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python处理PHP数组文本文件实例
2014/09/18 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
为什么说python适合写爬虫
2020/06/11 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
2014新年元旦活动策划方案
2014/02/18 职场文书
金秋助学感谢信
2015/01/21 职场文书
个人年终总结结尾
2015/03/06 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
首都博物馆观后感
2015/06/05 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
Python机器学习之底层实现KNN
2021/06/20 Python