JS常用兼容

JS 常用兼容

//1滚动条距离顶端的距离
var scroll_top = Math.floor(document.documentElement.scrollTop || document.body.scrollTop);
//2滚动条距左端的距离
var scroll_left = Math.floor(document.documentElement.scrollLeft || document.body.scrollLeft);
//3.byClassName的兼容
function byClassName(obj,className){
if(obj.getElementsByClassName){ //支持
return obj.getElementsByClassName(className);
}else{
//获取全部
var eles = obj.getElementsByTagName(’*’);
var arr = [];
for(var i = 0,len = eles.length;i < len;i ++){
if(eles[i].className === className){
arr.push(eles[i]);
}
}
return arr;
}
}
//4. 获取非行内样式
function getStyle(obj,attr){
return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj,1)[attr];
}
//5. 获取事件对象的兼容
function getEvent(){
return arguments[0] || window.event;
}
//6. //获取鼠标编码值的兼容
function getMouseCode(evt){
var e = evt || window.event;
if(evt){
return e.button;
}else if(window.event){
switch(e.button){
case 1 : return 0;
case 4 : return 1;
case 2 : return 2;
}
}
}
//7. 获取键盘编码值的兼容
event.keyCode || event.charCode || event.which

//8. 阻止事件冒泡的兼容
event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
//9. 阻止默认行为的兼容
event.preventDefault ? event.preventDefault() : event.returnValue = false;
//10.添加事件监听器的兼容
function addEventListener(obj,event,fn,boo){
//初始化参数
boo = boo || false;
if(obj.addEventListener){ //标准
obj.addEventListener(event,fn,boo);
}else if(obj.attachEvent){ //ie
obj.attachEvent(‘on’ + event,fn);
}
}
//11. 移除事件监听器的兼容
function removeEventListener(obj,event,fn,boo){
//初始化参数
boo = boo || false;
if(obj.removeEventListener){
obj.removeEventListener(event,fn,boo);
}else if(obj.detachEvent){
obj.detachEvent(‘on’ + event,fn);
}
}
//12. 获取事件源的兼容
var target = event.target || event.srcElement;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue Bootstrap OSS 实现文件上传

公司实现文件上传技术选型采用后端SpringBoot/Cloud&#xff0c;前端vue Bootstrap &#xff0c;阿里云OSS作为文件存储&#xff0c;文件上传功能单独抽取封装文件上传组件&#xff0c;可供所有的文件的操作。 后端框架版本SpringBoot2.5.6Spring-Cloud2020.0.4mysql8.0.26page…

【云栖号案例 | 教育与科研机构】红岭创投上云 成功顺应全球电子商务发展趋势

公司介绍 红岭创投隶属于深圳市红岭创投电子商务股份有限公司。 红岭创投顺应全球电子商务发展趋势&#xff0c;充分挖掘互联网市场潜力&#xff0c;致力于通过建立一个安全、高效、诚信、互惠互助的网络借贷平台&#xff0c;让人们有机会帮助到需要帮助的人&#xff0c;从而解…

使用Kubernetes容器服务在云上搭建AI推理环境

场景描述 本方案适用于使用GPU进行AI在线推理的场景。在推理之前&#xff0c;模型已经训练完成。例如,刷脸支付中&#xff0c;我们在刷脸的时候&#xff0c;就是推理的一个过程。再比如图像分类&#xff0c;目标检测&#xff0c;语音识别&#xff0c;语义分析等返回结果的过程…

美国 AI 博士:什么都不会怎么学 Python?

我见过市面上很多的 Python 讲解教程和书籍&#xff0c;他们大都这样讲 Python 的&#xff1a;先从 Python 的发展历史开始&#xff0c;介绍 Python 的基本语法规则&#xff0c;Python 的 list, dict, tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0…

JS扁平化数组

JS数组扁平化、二维数组、多维数组的多种扁平化方法 //扁平化简单的二维数组const arr1 [11, [22, 33], [44, 55], 66];const flatArr1 arr1.join().split(,); //.split 将字符串转化为数组console.log(flatArr1)// 主要使用的join方法&#xff1a;let arr2 [[1,2],3,[4,5]…

Vue Bootstrap OSS 实现文件追加上传、断点续传、极速秒传

公司实现文件上传技术选型采用后端SpringBoot/Cloud&#xff0c;前端vue Bootstrap &#xff0c;阿里云OSS作为文件存储&#xff0c;大文件上传功能单独抽取封装大文件上传组件&#xff0c;可供所有的大文件的操作。 后端框架版本SpringBoot2.5.6Spring-Cloud2020.0.4mysql8.0.…

使用容器服务支持开发者快速搭建小程序后端服务

场景描述 小程序作为一种新的开放能力被广泛应用于各业务场景&#xff0c;开发者可以快速地开发一个小程序&#xff0c;在微信可便捷地获取和传播&#xff0c;同时依赖微信平台原生能力获取出色的使用体验。 阿里云容器服务结合阿里云云原生能力帮助客户快速构建小程序的后端服…

利用对象存储多种方式 保障OSS数据安全

本文介绍如何通过对象存储OSS提供的加密、访问控制、日志与监控及数据保护等多种方式来保障OSS的数据安全性。 加密 OSS提供服务器端加密、客户端加密以及数据传输加密三种数据加密方式。 服务器端加密 OSS通过服务器端加密机制&#xff0c;提供静态数据保护。适合于对于文件…

征战云时代,为什么安全是关键命题?

从左到右&#xff1a;李亮&#xff08;主持人&#xff09;、张美波、蒋涛、韦青扫描上方二维码直达精彩回顾整理 | 伍杏玲出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;全球数字化转型浪潮不断推进下&#xff0c;企业上云步伐加快&#xff0c;在这个过程中不少企…

Vue Bootstrap 静态服务器 实现文件追加上传、断点续传、极速秒传

公司实现文件上传技术选型采用后端SpringBoot/Cloud&#xff0c;前端vue Bootstrap &#xff0c;阿里云OSS作为文件存储&#xff0c;大文件上传功能单独抽取封装大文件上传组件&#xff0c;可供所有的大文件的操作。 后端框架版本SpringBoot2.5.6Spring-Cloud2020.0.4mysql8.0.…

如何调用API管理您的云上资源

欢迎您选择云服务器&#xff08;Elastic Compute Service&#xff0c;ECS&#xff09;&#xff0c;如果您熟悉网络服务协议和一种以上编程语言&#xff0c;推荐您调用API管理您的云上资源和开发自己的应用程序。 使用限制 根据您使用云服务器ECS的情况而变化&#xff0c;您能…

图片安全检测和数据跨境复制,规避违规风险

场景描述 本实践通过搭建WordPress博客系统&#xff0c;向用户展示如何将图片、附件等静态资源上传到阿里云OSS&#xff0c;并通过阿里云CDN进行加速&#xff0c;同时演示了基于函数计算托管函数完成OSS存储空间中数据的跨境复制&#xff0c;基于阿里云内容安全对OSS图片进行违…

Vue Bootstrap 静态服务器 实现文件上传

公司实现文件上传技术选型采用后端SpringBoot/Cloud&#xff0c;前端vue Bootstrap &#xff0c;静态服务器作为文件存储&#xff0c;文件上传功能单独抽取封装文件上传组件&#xff0c;可供所有的文件的操作。 后端框架版本SpringBoot2.5.6Spring-Cloud2020.0.4mysql8.0.26pag…

vue常用面试题

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化 Vuex有五个核心概念&#xff1a; state、getters、mutations、actions、modules。 1、state&#xff1a;vuex…

网络安全防护部署,升级支持IPv6

场景描述 关键信息基础设施支持IPv6已经上升到国家战略&#xff0c;公共云基础设施为云上客户系统支持IPv6提供了完整的解决方案及产品。本最佳实践是在现有WAF和高防IP作为网络安全架构基础上&#xff0c;如何升级支持IPv6&#xff0c;同时满足云上和线下IDC需求&#xff0c;…

500道Java 必备面试题答案(过后即删)

每个技术人都有个大厂梦&#xff0c;我觉得这很正常&#xff0c;并不是饭后的谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司&#xff0c;如果说能够在这样的公司锻炼几年&#xff0c;相信对自己…

简单七步,快速入门 JMeter原生压测

导入本地的 JMeter 原生脚本&#xff0c;即可快速发起一次压测。 前提条件 JMeter 脚本需要在本地调试成功。请同时上传依赖的 CSV 或者 JAR 文件。CSV 文件的 File Name 只需要文件名&#xff0c;不要带路径&#xff0c;因为上传之后和 JMX 脚本在同目录下。 限制条件 最大…

动态修改网页icon图标

动态修改网页icon图标 //如果在vue项目中 在App.vue下的 created() 中输入 var link document.querySelector("link[rel*icon]") || document.createElement("link"); link.type "image/x-icon"; link.rel "shortcut icon"; link…

创建VPC前,网络规划的4个问题你弄清了吗?

在创建VPC和交换机前&#xff0c;您需要结合具体的业务规划VPC和交换机的数量及网段等。 应该使用几个VPC&#xff1f;应该使用几个交换机&#xff1f;应该选择什么网段&#xff1f;VPC与VPC互通或VPC与本地数据中心互通有什么要求&#xff1f; 应该使用几个VPC&#xff1f; …

mybatis自动生成代码只有insert()和insertSelective()

在jdbc url后增加nullCatalogMeansCurrenttrue即可(但此时不会生成withBLOBs类) 案例 jdbc:mysql://127.0.0.1:3306/dianpingdb?nullCatalogMeansCurrenttrue" userId"root" password"123456"