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 相关文章推荐
Expandable &quot;Detail&quot; Table Rows
Aug 29 Javascript
多个$(document).ready()的执行顺序实例分析
Jul 26 Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 Javascript
jQuery简单实现彩色云标签效果示例
Aug 01 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
Aug 29 Javascript
jQuery Ajax全解析
Feb 13 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
解决layui弹框失效的问题
Sep 09 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
在Uni中使用Vue的EventBus总线机制操作
Jul 31 Javascript
JQuery Ajax如何实现注册检测用户名
Sep 25 jQuery
解决vant的Toast组件时提示not defined的问题
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文本数据库的搜索方法
2006/10/09 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
浅谈php7的重大新特性
2015/10/23 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python write无法写入文件的解决方法
2019/01/23 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
python区分不同数据类型的方法
2019/10/14 Python
Python3列表List入门知识附实例
2020/02/09 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python