http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm浏览器兼容真的会让人吐血,最近都是使用 Firefox3.0 + IETab 用来测试兼容 Firefox与IE,可是在电脑上的IE8 beta2上跑跑又罢工了。唉。。。感叹一下!!!写下此篇,记录遇到的一些兼容问题。
开始先抱怨下Firefox3.0的bug:不支持智能ABC输入法,我从五笔切换为智能ABC时Firefox3.0就会被强制关闭。
刚刚又一次。。。
一、透明度
支持大多数浏览器:filter:alpha(opacity=50); -moz-opacity: 0.6; opacity: 0.6;
不过IE8 beta2下无效。
需要将<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">删除掉。
二、取文档高度
文档高度,就是包括可见部份和不可见部份(不可见也就是拉下滚动条能看到的地方)。
var width = document.body.scrollWidth;
var height = document.body.scrollHeight;
很意外的都兼容。
三、input:hover的问题(未解决问题)
input{background:#000000;}
input:hover{background:#ff0000;}
在Firefox3.0下有效,不过在IETab和IE8 beta2下都无效。。。
四、刷新框架
IE支持 window.top.frames[0].location.reload() 与 window.top.frames["topFrame"].location.reload()的写法
不过Firefox3.0 只支持window.top.frames[0].location.reload()
在这里顺便提一下:Asp.Net注册脚本确实很方便。
记得以前都是Response.Write("<script language=""javascript"" type=""text/javascript"">" + 脚本 + "</script>"); 这种方式不紧麻烦而且低效,如果该脚本需要多次发往客户端,那对带宽真的是种浪费。
启动就执行的注册方式:
String key = "RELOAD_TOPFRAME"; // 刷新topFrame脚本key
String script = "window.top.frames[0].location.reload();"; // 刷新topFrame脚本script
if (!ClientScript.IsStartupScriptRegistered(key))
ClientScript.RegisterStartupScript(this.GetType(), key, script, true); // true为启动脚本
五、trim()函数
javascript中并没有提供trim()函数,但是这个函数又太常用了。怎么办呢?我们自己提供一个吧。
String.prototype.trim= function() {
return this.replace(/(^\s*)|(\s*$)/g,"");
}
正则表达式说明:\s 表示匹配任意空白字符 ^ 表示开始 ^\s* 表示匹配开始的连续空白字符
$ 表示结尾 \s*$ 表示匹配结尾的连续空白字符。
(^\s*)|(\s*$)表示匹配开始连续空白和结尾连续空白。
g 表示全局,不加g只匹配到第一个就结束,加上g会继续匹配下去。
正则表达式相关可参看 (正则表达式30分钟:http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm)
开始先抱怨下Firefox3.0的bug:不支持智能ABC输入法,我从五笔切换为智能ABC时Firefox3.0就会被强制关闭。
刚刚又一次。。。
一、透明度
支持大多数浏览器:filter:alpha(opacity=50); -moz-opacity: 0.6; opacity: 0.6;
不过IE8 beta2下无效。
需要将<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">删除掉。
二、取文档高度
文档高度,就是包括可见部份和不可见部份(不可见也就是拉下滚动条能看到的地方)。
var width = document.body.scrollWidth;
var height = document.body.scrollHeight;
很意外的都兼容。
三、input:hover的问题(未解决问题)
input{background:#000000;}
input:hover{background:#ff0000;}
在Firefox3.0下有效,不过在IETab和IE8 beta2下都无效。。。
四、刷新框架
IE支持 window.top.frames[0].location.reload() 与 window.top.frames["topFrame"].location.reload()的写法
不过Firefox3.0 只支持window.top.frames[0].location.reload()
在这里顺便提一下:Asp.Net注册脚本确实很方便。
记得以前都是Response.Write("<script language=""javascript"" type=""text/javascript"">" + 脚本 + "</script>"); 这种方式不紧麻烦而且低效,如果该脚本需要多次发往客户端,那对带宽真的是种浪费。
启动就执行的注册方式:
String key = "RELOAD_TOPFRAME"; // 刷新topFrame脚本key
String script = "window.top.frames[0].location.reload();"; // 刷新topFrame脚本script
if (!ClientScript.IsStartupScriptRegistered(key))
ClientScript.RegisterStartupScript(this.GetType(), key, script, true); // true为启动脚本
五、trim()函数
javascript中并没有提供trim()函数,但是这个函数又太常用了。怎么办呢?我们自己提供一个吧。
String.prototype.trim= function() {
return this.replace(/(^\s*)|(\s*$)/g,"");
}
正则表达式说明:\s 表示匹配任意空白字符 ^ 表示开始 ^\s* 表示匹配开始的连续空白字符
$ 表示结尾 \s*$ 表示匹配结尾的连续空白字符。
(^\s*)|(\s*$)表示匹配开始连续空白和结尾连续空白。
g 表示全局,不加g只匹配到第一个就结束,加上g会继续匹配下去。
正则表达式相关可参看 (正则表达式30分钟:http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm)