js中兼容问题的解决

获取事件对象的兼容ie写法

1 var obox = document.querSelector(".box");
2
3 obox.onclick = function(eve) {
4            var e = eve || window.event   //ie只支持window.event
5            console.log(e);
6         }

阻止事件冒泡的兼容ie写法

1 function stopBubble(e){    //传入事件对象
2         if(e.stopPropagation){
3             e.stopPropagation();
4         }else{
5             e.cancelBubble = true;   //如果ie,则使用e.cancleBubble
6         }
7     }

监听式绑定的兼容ie写法

1 function addEvent(ele,type,cb){   //元素对象  事件类型  事件函数
2         if(ele.addEventListener){
3             ele.addEventListener(type,cb)    //ie不支持
4         }else if(ele.attachEvent){
5             ele.attachEvent("on"+type,cb)   //仅ie9支持
6         }else{
7             ele["on"+type] = cb;   //都不支持,使用赋值式绑定
8         }
9     }

取消绑定事件的兼容ie写法

1 function removeEvent(ele,type,cb){   //元素对象  事件类型  事件函数
2         if(ele.removeEventListener){
3             ele.removeEventListener(type,cb)   //ie不支持
4         }else if(ele.detachEvent){
5             ele.detachEvent("on"+type,cb)   //ie支持
6         }else{
7             ele["on"+type] = null;   //都不支持,采用删除赋值式事件绑定
8         }
9     }

原文地址:https://www.cnblogs.com/yad123/p/11419883.html

时间: 2024-10-29 05:15:33

js中兼容问题的解决的相关文章

Javascript的DOM中兼容问题以及解决兼容问题的方法

一.获取非行内样式的方法和它的兼容问题及解决方式 方 法 一:getComputedStyle(obox,false)  第一个参数表示要获取的对象,第二个值指定一个要匹配的伪元素的字符串.必须对普通元素省略(或null)false也可以.主要针对正常浏览器 方 法 二:Element.currentStyle  在IE浏览器中使用 解决兼容问题的方式: function getStyle(ele,attr){ if(ele.currentStyle){ return ele.currentSt

js的兼容问题以及解决方式(持续更新)

我们在使用js操作页面的时候兼容问题是很常见的,下面将常见的兼容问题及其对应的解决方法分享给大家,并持续更新: 1.获取事件对象的兼容写法: IE中:window.event 正常浏览器中:对象.on事件 = function(event){} //包装函数兼容写法:function fn(eve){ var e = eve || window.event; } 2.键盘按键获取的兼容写法: //先获取键盘事件对象 var eve = eve || window.event //在通过键盘事件对

JS中兼容问题的汇总

获取非行内样式的兼容方式 function getStyle(obj,attr){ //获取非行间样式,obj是对象,attr是值 if(obj.currentStyle){ //针对ie获取非行间样式 return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,false)[attr]; //针对非ie } } 获取事件对象的兼容方式 document.onclick=function(eve){ var e=eve||w

js中window.location.href解决target的问题

location是没办法设置target的.location就是本地本页的意思,只能设置本页的指向,如果界面中用到iframe那么可以这样: parent.frames["iframe的name"].window.loaction.href="a.jsp";

关于JS中利用for循环解决实际问题的相关练习

第一题:X3 * 6528 = 3X * 8256X为一个数字 填入一个数字 使等式成立 for(x=1;x<10;x++){    var a=(x*10+3);    var b=(3*10+x);    if(a*6528==b*8256){         alert(x);     } }第二题:在页面上输出以下图形    *   ***  ***** **************** var x = 1; for(var i=4;i>=0;i--){ for(var sp = 1;

关于JS中利用for循环解决实际问题的逻辑操作

第一部分 <script>        //        <!--折纸:折多少次和珠穆朗玛峰一样高//1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米-->//            var depth = 0.0001;                for(i=1;true;i++){            depth=depth*2            if(depth>8848){                alert(i);

图解js中常用的判断浏览器窗体、用户屏幕可视区域大小位置的方法

有时我们需要获得浏览器窗口或屏幕的大小.窗口下拉框下拉的距离等数据,对应这些需求,js中提供了不少解决方法,只是数量稍多容易混淆它们各自的意义,下面咱们用图例来解释下12个常见对象属性的作用. 其中有6个常用的浏览器窗体属性(由于offsetWidth/Height在不同浏览器下表现有出入,故不在本章讨论): document.documentElement.clientWidth document.documentElement.clientHeight document.documentEl

JavaScript - thymeleaf 在 js 中渲染的一个问题

可能只是一个小小的问题...虽然解决了.但真的有点吐了. 嘛,可能标题取叫 「spring boot ajax 发送 post 方法报 500 状态码,put 方法报405 状态码错误」 更能让遇到相同问题的伙伴很快找到解决办法. 这个问题是我在用 java + springboot + security + thymeleaf + jquery 写网站时遇到的. 先说说的要做的事:在前一个页面点击新建按钮会来到编辑页面,如果点击编辑按钮就将数据加载并进到编辑页面,所以如果是新建,那么保存的时候

分享一个自定义的 console 类,让你不再纠结JS中的调试代码的兼容

问题的产生 在写JS的过程中,为了调试我们常常会写很多 console.log.console.info.console.group.console.warn.console.error代码来查看JS的运行情况,但发布时又因为IE不支持console,又要去掉这些代码,一不小心就会出错. 本文分享自己昨晚写的一个console类来试图解决这一问题.当然,更好的做法是把测试代码分开写,那样就不会有这个问题. 解决思路 如何解决IE下不兼容的问题呢,那就是我们自己定义一个console类来覆盖浏览器