IE、火狐(Firefox)和谷歌(Google Chrome)浏览器差异【收集】

摘要:
项目的页面要求javascript在IE、火狐和谷歌三个浏览器中都能运行,期间遇到一些问题,现收集并总结一些:1.获取鼠标的坐标时,使用event.clientX,不要使用event.x,因为火狐不支持event.x,最好使用event.screenX。例:functionalertMsg{alert;}3.火狐和谷歌在给obj.style.left和obj.style.top赋值时加上单位px,例:obj.style.left=100px。IE中可不加单位。

项目的页面要求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");
}
}

免责声明:文章转载自《IE、火狐(Firefox)和谷歌(Google Chrome)浏览器差异【收集】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Delphi Byte与数据类型之间的转换QOS限速下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

为什么每个浏览器User-Agent都是Mozilla?真相原来是这样!

转载自简明现代魔法http://www.nowamagic.net/librarys/veda/detail/2576 故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Supercomputing Applica...

火狐浏览器单击链接总是在一个新的标签页打开的设置方法

Tab Mix Plus插件导致的,本应该在当前页面打开,结果在新的标签页打开了,在附加组件中,禁用掉 Tab Mix Plus插件即可; 我的实现方法是装了一个Tab Mix Plus插件。我用的版本是0.4.1.0。 以下是简单的设置:工具,选项,标签式浏览。有个新增的按钮,点下去。 那个“所有链接”就是关键所在。 有人疑问了,我想打开一个...

获取谷歌浏览器缓存视频方法

一、首先找到缓存文件位置C:UsersJiaPengAppDataLocalGoogleChromeUser DataDefaultCache 如果不好找,可以先打开IE浏览器,Internet选项-》常规下点击设置-》Internet临时文件下点击查看文件 得到IE缓存文件的位置C:UsersJiaPengAppDataLocalMicrosoftWi...

实战:一种在http请求中使用protobuffer+nginx+lua收集打点日志的方案

背景 app打点日志的上报和收集,是互联网公司的基本需求。 一.方案选择 1.1 protobuffer vs json 探究一种以最高效的方式上报和解析打点数据是一个系统性的问题,需要解决的子问题有很多,例如降低网络传输成本,减少序列化反序列化的性能开销,可靠性和高峰期的水平扩展,以及非耦合的编码等等。 很多公司的打点日志会采用比较简单通用的json格式...

C# 模拟鼠标(mouse_event)

想必有很多人在项目开发中可能遇见需要做模拟鼠标点击的小功能,很多人会在 百度过后采用mouse_event这个函数,不过我并不想讨论如何去使用mouse_event 函数怎么去使用,因为那没有多大意义。 [csharp] view plaincopy static void mouse_event(int dwFlags, int ...

通过Url Protocol实现web调用本地exe,兼容谷歌IE,并实现本地验证

1.随便在网上找个注册码写入,web调用方法为<a href="openLayerManager:">调用</a> 一定要注意后面的冒号 2.这样调用的话你会发现,如果本地没有该程序,那么你怎么点击都不会有反应,这样就需要本地exe程序有无验证 3.验证,首先需要下载两个大神写的js文件example.js和protocolchec...