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防止表单重复提交实现代码
Sep 05 Javascript
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
深入理解javascript动态插入技术
Nov 12 Javascript
js动态添加onclick事件可传参数与不传参数
Jul 29 Javascript
JQuery插件jcarousellite的参数中文说明
May 11 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
Aug 07 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
js前端面试题及答案整理(一)
Aug 26 Javascript
jQuery插件扩展实例【添加回调函数】
Nov 26 Javascript
Angular中ng-options下拉数据默认值的设定方法
Jun 21 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
jquery的 filter()方法使用教程
Mar 22 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之短标签开启设置
2013/06/17 PHP
php实现简单爬虫的开发
2016/03/28 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
JS实现商品筛选功能
2020/08/19 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
Python跳出循环语句continue与break的区别
2014/08/25 Python
Python原始字符串(raw strings)用法实例
2014/10/13 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
Python Socket传输文件示例
2017/01/16 Python
解决python报错MemoryError的问题
2018/06/26 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
Python File(文件) 方法整理
2019/02/18 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
python PIL模块的基本使用
2020/09/29 Python
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
趣味运动会简讯
2015/07/20 职场文书
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA
windows系统搭建WEB服务器详细教程
2022/08/05 Servers