Firefox 的 JavaScript 问题两则
来源:互联网 发布:淘宝超级店长好用吗 编辑:程序博客网 时间:2024/05/25 16:38
今天发现页面上新加上的左列 Tag 在 Firefox 上显示不正确,在细察之下,发现 Firefox 在 JavaScript / CSS 上和 IE 不同之处:
问题 1. 类似 obj.style.height = imgObj.height 的语句无效。
即将一个 image 对象的高度值赋给另一个对象,用来修改其样式高度,这样做无效。
分析
要理解这个问题,首先要纠正思想上的一个误区。以上这个操作,其实并非是通常编程概念上的将一个 int 值赋给另一个 int 变量。这个语句的操作,实际上是把 imageObj.height 当作一个字符串,作为 obj 这个对象 CSS 中 height 的属性。
而之前的一篇帖子说过,Firefox 对 CSS 的理解非常严格,任何表示大小的值,数字后面必须跟上单位,除非是 0。也就是说,height: 20 对于 Firefox 来讲不具有任何意义,必须写成 height: 20px 才会被接受。所以,在 JavaScript 中,为了让对 CSS 的 height 值的设置有效,所赋给的字符串也同样必须是数量加上单位。
解决
以上语句,应该写成:
问题 2. Firefox 不支持 obj.innerText 属性。
如果把 obj.innerText alert() 出来,显示的值是 undefined。
分析
Firefox 支持 innerHTML 属性却不支持 innerText,这一点实在是蹊跷。很多人建议用 innerHTML 来代替需要用 innerText 的场合,但是这显然并不总是适用。我们有时候只是要取得一个 Tag 中的文字信息而不需要 HTML 的标记。
解决
良好的替代办法是用 obj.textContent,这个属性的作用和 innerText 是相同的,名称不同而已。不过为了兼容性,我们还是需要在程序中区分一下当前环境支持哪种。以下方法可以帮助我们区分:
以前我们讲过,Firefox 不支持 document.all 这个 Collection,我们需要用 getElementById() 方法来替代,所以通过判断是否有 document.all,就能区分当前环境。
问题 3.firefox Date 的getYear() 返回值和 IE不同。
例如今年是2007年,那么用Date来取
firefox下
Date date = New Date();
date.getYear();显示为107
date.getFullYear();显示为2007
IE下
Date date = New Date();
date.getYear();显示为2007
date.getFullYear();显示为2007
-----------------------------------------------------------------
var today = new date();
var year = today.getYear();
在 Firefox 里面 getYear 返回的是 "当前年份-1900" 的值 (以前都如此)
而微软很NB的做了一个改动:
当today的年份大于等于2000的时候 直接把1900加上了 返回的 200X (而不是10X)
如:today年份是1999 返回99
today年份是2000 返回2000
一个简单的解决是加一个判断:
year = (year<1900?(1900+year):year);
也有另外的方法
通过 getFullYear getUTCFullYear 去调用
var year = today.getFullYear();在IE,FireFox都适用
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fightplane/archive/2007/03/23/1538778.aspx
- Firefox 的 JavaScript 问题两则
- Firefox 的 JavaScript 问题两则
- 常见firefox不支持的JavaScript问题
- 常见firefox不支持的JavaScript问题
- firefox 下的 javascript
- 又是firefox与IE下的javascript问题
- 下载csv,excel文件名乱码的问题(IE和FireFox两种浏览器)
- firefox的JS问题
- Firefox scrollTop 的问题
- firefox的iframe问题
- 【Firefox扩展】javascript的对话框
- 问题++: firefox的关闭问题
- insertRow() firefox和IE下的兼容问题 览器JavaScript时要注意的问题
- 一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
- 一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
- 一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
- 一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
- 用 javascript + actionScript 解决透明的flash在firefox下滚轮失效的问题!
- SQL server中rand()生成随机数技巧接受
- 字符串转化
- 智乐软件的笔试题
- [sql server] 问题总结3 - 获取最大值,最小值的 not exists
- 访问Drawable 资源的宽高----ContextMenu Bitmap
- Firefox 的 JavaScript 问题两则
- vi分屏
- rgb565 image data transform to OLED data
- 存储过程
- 从腾讯上弄下来的 设置首页
- 脚本式参数化建模
- C#SerailPort串口通信Demo
- [iphone] Hardware->Simulate Memory Warning
- Linux runlevel