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 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
Mar 18 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
jquery原理以及学习技巧介绍
Nov 11 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
jquery datatable服务端分页
Aug 31 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 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
建立动态的WML站点(一)
2006/10/09 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
js简单时间比较的方法
2016/08/02 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
详解vue axios中文文档
2017/09/12 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
python实现八大排序算法(1)
2017/09/14 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
django Admin文档生成器使用详解
2019/07/22 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
python属于解释语言吗
2020/06/11 Python
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
房地产开发计划书
2014/01/10 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL