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 相关文章推荐
node.js中的fs.readdirSync方法使用说明
Dec 17 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
解析利用javascript如何判断一个数为素数
Dec 08 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
Feb 17 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
js+css实现打字效果
Jun 24 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
May 13 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 Javascript
解决await在forEach中不起作用的问题
Feb 25 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 字符转义 注意事项
2009/05/27 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
JavaScript效率调优经验
2009/06/04 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
pycharm 使用心得(五)断点调试
2014/06/06 Python
python实现百度语音识别api
2018/04/10 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
党章学习思想汇报
2014/01/14 职场文书
关于元旦的广播稿
2014/02/16 职场文书
学校元旦晚会方案
2014/02/19 职场文书
青年文明号服务承诺
2014/03/31 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers