js在IE浏览器和非IE浏览器中的兼容性问题

时间:2023-01-27 19:32:41

下面列出IE和非IE中常见的一些js兼容性问题。
 

//window.event  

IE:有window.event对象  

非IE:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)

解除冒泡的方法不同

IE:window.event.cancelBubble=true;
非IE:event.stopPropagation();

IE:会忽略节点之间生成的空白文本节点(比如换行字符)

非IE:不会忽略,会把节点之间的空白当成文本节点。

//鼠标当前坐标  

IE:event.x和event.y。  

非IE:event.pageX和event.pageY。  

通用:两者都有event.clientX和event.clientY属性。  
 

 

//event.srcElement问题  

说明:IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性.  

解决方法:使用obj(obj = event.srcElement ? event.srcElement :
event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
请同时注意event的兼容性问题。 
 

 
//添加事件  

IE:element.attachEvent("onclick", function);。  

非IE:element.addEventListener("click", function, true)。  


用:element.onclick=function。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样
的,onclick
只有执行一个过程,而attachEvent和addEventListener执行的是一个过程列表,也就是多个过程。例
如:element.attachEvent("onclick", func1);element.attachEvent("onclick",
func2)这样func1和func2都会被执行。  

 

//标签的自定义属性  

IE:如果给标签div1定义了一个属性value,可以div1.value和div1["value"]取得该值。  

非IE:不能用div1.value和div1["value"]取。  

通用:div1.getAttribute("value")。  

 

//集合/数组类对象问题 

(1)现有问题: 

    现有代码中许多集合类对象取用时使用 (),IE 能接受,MF 不能。 

(2)解决方法: 

    改用 [] 作为下标运算。如:document.forms("formName") 改为 document.forms["formName"]。 

    又如:document.getElementsByName("inputName")(1) 改为 document.getElementsByName("inputName")[1] 

 

//HTML 对象的 id 作为对象名的问题 

(1)现有问题 

     在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能。 

(2)解决方法 

     用 getElementById("idName") 代替 idName 作为对象变量使用 

 

//input.type属性问题  

说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写 

 
//body问题  

Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在 

 

//firefox与IE的父元素(parentElement)的区别  

IE:obj.parentElement  

非IE:obj.parentNode  

解决方法: 因为非IE与IE都支持DOM,因此使用obj.parentNode是不错选择 

 

//innerText在IE中能正常工作,但是innerText在FireFox中却不行. 需用textContent

js在IE浏览器和非IE浏览器中的兼容性问题的更多相关文章

  1. CSS hack 如何区分所有IE浏览器和非IE浏览器

    网上方法很多,例如,测试后得出以下结论,多余的话不说了,直入主题: 1.所有的推理IE浏览器 正解:此写法仅仅被lE浏览器识别,非IE浏览器不识别. <!--[if IE]> <st ...

  2. IE浏览器与非IE浏览器JS日期兼容性问题处理

    执行语句 console.log(new Date("2017-07-04 18:40").getTime()); 在IE浏览器中打印出:NAN 在非IE浏览器中打印出:14991 ...

  3. js方法区分IE浏览器和非IE浏览器

    可以从IE特有的方法和非IE特有的方法来区分不同的浏览器 1.为元素添加事件监听: 非IE:.addEventListener("click",show,false)//第三个参数 ...

  4. 非ie浏览器必备函数常识

    场景描述: 我们都知道IE浏览器和非IE浏览器都有很多功能一样但写法不同,或者各自都有一些自己独特的方法,那么为了保持兼容性和便于编写,我们可以通过这两个方法给非IE浏览器的对象增加自己没有,但IE有 ...

  5. 兼容IE9以下和非IE浏览器的原生js事件绑定函数

    事件绑定函数的demo如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "htt ...

  6. js &sol;jquery停止事件冒泡和阻止浏览器默认事件

    1>js阻止冒泡事件 var el = window.document.getElementById("a"); el.onclick = function (e) { // ...

  7. ASP&period;NET MVC 使用Jquery Uploadify 在非IE浏览器下Http Error的解决方案

    解决Uploadify上传控件在非IE浏览器中不工作,需要做如下2步修改: 1.Global.asax文件中,实现Application_BeginRequest函数: void Applicatio ...

  8. JS判断客户浏览器是否是IE8浏览器、jQuery判断浏览器内核

    今天在使用encharts的时候由于要兼容IE8,所以最终决定在非IE8浏览器使用encharts,在IE8使用amcharts.于是需要使用JS判断使用的浏览器版本: function IEVers ...

  9. html页面中js判断浏览器是否是IE浏览器及IE浏览器版本

    HTML里: HTML代码中,在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了.在HTML代码中, ...

随机推荐

  1. make&lbrack;2&rsqb;&colon; &ast;&ast;&ast; No rule to make target &grave;&sol;root&sol;&period;pyenv&sol;versions&sol;anaconda3-2&period;4&period;0&sol;lib&sol;libpython3&period;5m&period;so&&num;39&semi;&comma; needed by &grave;evaluation&period;so&&num;39&semi;&period; Stop&period;

    当出现No rule to make target ,肯定是Makefile有问题. 有的makefile是脚本生成的,你得看脚本的配置文件对不对. 我的是这个脚本生成的.发现是Pythondir的配 ...

  2. linux配置java环境变量&lpar;详细&rpar;

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  3. TensorFlow实战之Softmax Regression识别手写数字

         关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2018年02月21日 23:10:04所撰写内容(http://blog.c ...

  4. &lbrack;小技巧&rsqb;ASP&period;NET Core中如何预压缩静态文件

    原文地址:Pre-compressed static files with ASP.NET Core 作者:Gunnar Peipman 译者:Lamond Lu 译文:https://www.cnb ...

  5. Good Time 冲刺四

    ---恢复内容开始--- 一.今日完成任务情况及遇到的问题 第四天 日期:2018.6.17 王怡镔:在学习工程中,逐步完善个人中心界面的设计和编写. 于鑫宇:对小程序内容进行一些修改,复习了昨天学过 ...

  6. 分布式文件系统 fastdfs搭建

    fastdfs第一步:在home文件夹下建立tar文件夹第二步:cd /home/tar///(Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( e ...

  7. php与java通用AES加密解密算法

    AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的 ...

  8. myeclipse及Eclipse中&period;classpath、&period;project、&period;settings、&period;mymetadata(myeclipse特有)介绍

    引言 今天在创建java项目的时候遇到了很多的错误,在解决的过程中遇到了一些根本不知道什么作用的文件,然后按照网上的一些做法可以将问题解决,但是这也说明我们在学习的时候很多基础和细节的地方是我们薄弱的 ...

  9. 将数据库从Oracle迁移到SQL Server

    参考链接:http://www.360doc.com/content/15/0310/14/9260775_454038517.shtml

  10. 【一题多解】Python 字符串逆序

    https://blog.csdn.net/seetheworld518/article/details/46756639 https://blog.csdn.net/together_cz/arti ...