IE、火狐(Firefox)和谷歌(Google Chrome)浏览器差异【收集】
2013-03-18 14:45 糯米粥 阅读(1723) 评论(0) 编辑 收藏 举报项目的页面要求javascript在IE、火狐(Firefox)和谷歌(Google Chrome)三个浏览器中都能运行,期间遇到一些问题,现收集并总结一些:
1.获取鼠标的坐标时,使用event.clientX,不要使用event.x,因为火狐不支持event.x,最好使用event.screenX。
2.火狐中不能在js中直接使用event对象,必须将event传递给js方法再使用。例:
<input name=”username” onclik=”alertMsg(event)”/>
function alertMsg(eventObj)
{
alert(eventObj.clientX);
}
3.火狐和谷歌在给obj.style.left和obj.style.top赋值时加上单位px,例:obj.style.left=100px。IE中可不加单位。
4.IE中增加事件用attachEvent,例:window.attachEvent(“onscroll”, functioname); 火狐和谷歌则用addEventListener,例:window.addEventListener(“scroll”,functioname, false);
5.火狐和IE中可以用document.documentElement.scrollTop获取滚动的高度,而在谷歌里要用document.body.scrollTop。
6.火狐和谷歌中不支持DIV的onresize事件
7.改变table的高度用table.style.height=”100px”,因为火狐和谷歌不支持table.height=”100px“这种写法。
8.动态添加文本时不要用innerText,用innerHTML,因为火狐用innerText在页面上看不到文本。
9.获取表单对象时用document.formname,不要直接写formname,因为在火狐上获取不到。
10。文本框获取光标。当文本框有值时。在IE中光标会在文字前面。但在谷歌。和火狐默认都是在后面。IE中可以这样:
因为只适合IE,所以判断是否是IE
function setFocus() {
if (navigator.userAgent.indexOf("MSIE") > 0) {
var obj = event.srcElement; //ff中。这里是空
var txt = obj.createTextRange();
txt.moveStart('character', obj.value.length);
txt.collapse(true);
txt.select();
}
}
11.IE6中position :fixed 定位
.fixed
{
_left: 350px;
_position: absolute;
_top:expression(eval(document.documentElement.scrollTop));
}
然后不想让屏幕抖动
*html
{
background-image: url(about:blank);
background-attachment: fixed;
}
/判断浏览器版本
function getExplorer() {
var explorer = window.navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
// name="select"
$("#CusTab [name=select]").css("width", 130 + "px");
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
$("#CusTab [name=select]").css("width", 153 + "px");
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
// alert("Chrome");
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
//alert("Opera");
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
//alert("Safari");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?