JavaScript兼容-持续更新

1.css非行内样式操作

// currentStyle用于IE低版本 getComputed用于主流浏览器
// element 目标元素 attribute 目标属性
function getStyle(element, attribute) {
return element.currentStyle ? element.currentStyle(attribute) : getComputed(element)[attribute];
}

2.事件添加删除

// attachEvent/detachEvent用于IE低版本 addEventListener/removeEventListener用于主流浏览器

// element 事件源(目标元素)    eventType 事件类型    callback 事件行为
// 添加
function addEvent(element, eventType, callback) {
// element.attachEvent ? element.attachEvent(`on${eventType}`, callback) : element.addEventListener(eventType, callback);
if (ele.attachEvent) {
ele.attachEvent('on' + type, callback);
} else {
ele.addEventListener(type, callback);
}
} //删除
function removeEvent(element, eventType, callback) {
// element.detachEvent ? element.detachEvent(`on${eventType}`, callback) : element.removeEventListener(eventType, callback);
if (ele.attachEvent) {
ele.detachEvent('on' + type, callback);
} else {
ele.removeEventListener(type, callback);
}
}

3.事件对象

// window.event用于IE低版本 event用于主流浏览器
element.onEventType = function(event) {
var e = event || window.event;
}

4.阻止冒泡

// cancelBubble = true用于IE低版本 stopPropagetion用于主流浏览器
element.onEventType = function(event) {
var e = event || window.event;
// e.stopPropagetion ? e.stopPropagetion() : e.cancelBubble = true;
if (e.stopPropagetion) {
e.stopPropagetion();
} else {
e.cancelBubble = true;
}
}

5.键盘keyCode

// which用于IE低版本 keyCode用于主流浏览器
element.onEventType = function(event) {
var e = event || window.event;
var code = e.keyCode || e.which;
}

6.取消默认行为

// returnValue用于IE低版本 preventDefault用于主流浏览器
element.onEventType = function(event) {
var e = event || window.event;
e.preventDefault ? e.preventDefault() : e.returnValue;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue;
}
// return false 写在函数最后 也可以阻止默认事件 没有兼容问题
}

JavaScript原生兼容大全-持续更新的更多相关文章

  1. JavaScript 使用技巧(持续更新)

    JavaScript 使用技巧(持续更新) 类型检测 使用Object.prototype.toString.call(obj)的方式. 因为无论typeof还是instanceof都无法做到精确判断 ...

  2. <精华篇>:iOS视频大全-持续更新

    注意:新浪微博分享的资料和简书分享的资料,略有不同! 小码哥swift3.0版 斗鱼项目视频:点击下载  iOS开发25个项目实战:点击下载 2016PHP全套下载:点击下载  黑马刀哥iOS视频精选 ...

  3. JavaScript学习笔记(持续更新)

    函数有“定义式”和“变量式”两种写法的区别 函数有“定义式”和“变量式”两种写法,两者基本区别不大.主要区别在于,如果在同一个代码块(Script标签对)定义两个同名的函数,浏览器在预编译代码时,使用 ...

  4. SD.Team字符表情集大全(持续更新中..)

    一.超级可爱的字符表情集 01. <( ̄︶ ̄)> 02. <( ̄︶ ̄)/ 03. b( ̄▽ ̄)d 04. 汗( ̄口 ̄)!! 05. ╮( ̄▽ ̄)╭ 06. ╰( ̄▽ ̄)╭ 07. ╮ ...

  5. HTML/CSS/JavaScript学习笔记【持续更新】

    HTML <font> 标签 定义和用法 <font> 规定文本的字体.字体尺寸.字体颜色. 实例 规定文本字体.大小和颜色: <font size="3&qu ...

  6. phpstorm激活大全--持续更新(支持2018最新版)

    方法一. 通过Licence Server 激活PHPStorm(快速) 方法原理是通过搭建服务器激活,不过网上有许多搭建好的. http://idea.goxz.gq http://v2mc.net ...

  7. linux相关命令大全......持续更新

    启动项目8080端口被占用,然而老久没玩Linux,命令忘光了,杀死进程都不记得了. 决定整理一波吧....... Linux: sudo强制执行,不在root用户下时使用. top 相当于windo ...

  8. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  9. 【持续更新】JavaScript常见面试题整理

    [重点提前说]这篇博客里的问题涉及到了了JS中常见的的基础知识点,也是面试中常见的一些问题,建议初入职场的园友Mark收藏,本文会持续更新~ 1. 引入JS的三种方式 1.在HTML标签中直接使用,直 ...

  10. ( 译、持续更新 ) JavaScript 上分小技巧(一)

    感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...

随机推荐

  1. LockSupport实现线程同步

    public class LockSupport01 { static Thread t1 = null, t2 = null; public static void main(String[] ar ...

  2. VMware安装Rocky Linux8服务器系统并执行优化,包括修改安装镜像源、ssh免密等等

    1. https://blog.csdn.net/DCTANT/article/details/125430461?utm_medium=distribute.pc_relevant.none-tas ...

  3. Centos6、7修改主机名

    centos6 1.临时修改 hostname node1 2.永久生效 , 修改/etc/sysconfig/network 文件 HOSTNAME=node1 3.修改 /etc/hosts文件 ...

  4. 基于Kubernetes(k8s)部署Dubbo+Nacos服务

    一.说明 本文介绍基于 Kubernetes(k8s) 环境集成阿里云 私有镜像仓库 来部署一套 Dubbo + Nacos 的微服务系统,并使用 Kubernetes DNS 以及 port-for ...

  5. AC自动机模板题 HDU - 2222

    Keywords Search  HDU - 2222 贴个vj的链接https://vjudge.net/problem/HDU-2222 题意:T组数据,n个单词,再给你一个串,看有几个单词在这个 ...

  6. 分布式搜索-elasticsearch

    学习黑马- SpringCloud微服务技术栈项目的分布式搜索章节自行整理的笔记,方便日后的重构. 项目涉及技术 知识点是按照集数依次整理,方便日后回来查找. 考虑到不是固定的联网方式,时而WiFi, ...

  7. return、break与continue的区别

    前言 在上一篇文章中,壹哥给大家介绍了while.do-while两种循环结构,并且给大家总结了两种循环的区别.实际上,我们在利用循环执行重复操作的过程中,还存在着另一个需求:如何中止,或者说提前结束 ...

  8. C#笔记之泛型

    泛型是C#中应用极为广泛的一种语法,本篇文章将详细介绍泛型的定义.使用.性能等. 一.什么是泛型 首先需要记住的是,泛型是.NET 2.0推出的语法,这样的话,泛型基本可以用于所有程序的开发,而不需要 ...

  9. 在一张 24 GB 的消费级显卡上用 RLHF 微调 20B LLMs

    我们很高兴正式发布 trl 与 peft 的集成,使任何人都可以更轻松地使用强化学习进行大型语言模型 (LLM) 微调!在这篇文章中,我们解释了为什么这是现有微调方法的有竞争力的替代方案. 请注意, ...

  10. 深度学习之PyTorch实战(4)——迁移学习

    (这篇博客其实很早之前就写过了,就是自己对当前学习pytorch的一个教程学习做了一个学习笔记,一直未发现,今天整理一下,发出来与前面基础形成连载,方便初学者看,但是可能部分pytorch和torch ...