JavaScript--兼容问题总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript--兼容问题总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6382字,纯文字阅读大概需要10分钟。
内容图文
一.window.navigator浏览器信息
1 <script> 2 console.log(window.navigator); 3// 用户浏览器的类型 到底是 谷歌还是火狐,ie等4 console.log(window.navigator.userAgent); 5// 判断浏览器所在的系统平台类型 ,window还是mac6 console.log(window.navigator.platform); 7 </script>
二.查找页面元素的几种方式
1 <script> 2 window.onload = function () { 3// 无兼容问题放心使用 4// 1) 通过id查找元素,获取到匹配的第一个id元素 5// var btn = document.getElementById(‘btn‘); 6// console.log(btn); 7// 2) 通过标签名称查找元素,获取到的是伪数组 8// var buttons = document.getElementsByTagName(‘button‘); 9//// 伪数组不能调用数组里的全部方法和属性10//// console.log( buttons.push("123") ); // 报错11// console.log( buttons );1213// 了解:兼容问题 ie 9+14// 3) 通过类名查找元素,获取到的是伪数组 ie 9+15// var btnClass = document.getElementsByClassName("btn-class");16// console.log(btnClass);1718// 4) 通过name属性查找元素,获取到的是伪数组19// name标准用法应该是表单的,如提交表单数据时,name是作为数据的key20// var btnName = document.getElementsByName(‘btn-name‘);21// console.log(btnName);2223// 5) 通过合法的css选择器去查找到第一个元素24// var query1 = document.querySelector("#btn");25// var query1 = document.querySelector("[name=‘btn-name‘]");26// console.log(query1);27// 28// 6) 通过合法的css选择器去查找到所有元素(做手机项目的时候常用)29// var query2 = document.querySelectorAll("#btn"); // 不推荐用这种方式找id30var query2 = document.querySelectorAll(".btn-class"); 31 console.log(query2); 3233 } 34 </script>
三.innerText、innerHTML、textContent兼容问题
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7/** 8 * innerHTML 9 * 全部浏览器都兼容 10 * innerText firefox45+后支持 11 * ie,chrome,opera,safari,firefox45+ 12 * textContent ie9+ 13 * firefox,chrome, ie9+ 14 * 15 * */16 window.onload = function () { 17var btns = document.getElementsByTagName(‘button‘); 18var uls = document.getElementsByTagName(‘ul‘); 19 btns[0].onclick = function () { 20// 如果innerText获取到不是undefined,说明兼容innerText21if( uls[0].innerText !== undefined ){ 22 uls[0].innerText = "123"; 23 }else{ 24// 其他情况:如低版本获取用另一种方式修改25 uls[0].textContent = "低版本火狐修改"; 26 } 27 } 2829 } 30 </script> 31 </head> 32 <body> 33 <button>换一换新闻</button> 34 <ul> 35 <li>牛大</li> 36 <li>拉面的老板去参加比赛了</li> 37 </ul> 38 </body> 39 </html>
四.注册事件的三种方式、解绑事件的兼容方式
1.注册事件的三种方式
1 <script> 2 window.onload = function () { 3 4/** 5 * 一、事件三要素 6 * 事件源 7 * 事件类型 8 * 事件处理程序 9 * 10 * 11 * 二、注册事件三种方式 12 * 第一种: 13 * 事件源.on事件类型 = 事件处理程序 14 * 第二种: ie8不支持 15 * 事件源.addEventListener(‘事件类型‘,事件处理程序,false) 16 * 第三种: chrome、Firefox、Safari、ie11都不支持,ie6~10支持 17 * 事件源.attachEvent(‘on事件类型‘,事件处理程序) 18 * 19 * */20var btn = document.getElementById(‘btn‘); 2122// 第一种:快速注册事件23// btn.onclick = function () {24// alert("我们给按钮添加了一个事件");25// }262728// 第二种:事件监听 不支持ie829// 事件源.addEventListener(‘事件类型‘,事件处理程序) false是事件冒泡(默认) true是事件捕获30 btn.addEventListener(‘click‘,function () { 31 alert("我们给按钮添加了一个事件"); 32 }); 3334 btn.addEventListener(‘click‘,function () { 35 alert("AAAAAAA"); 36 },false); 373839// 第三种:事件监听 Chrome、Firefox、Safari,ie11都不支持,ie6~10支持 40// btn.attachEvent(‘onclick‘,function () {41// alert("我们给按钮添加了一个事件");42// });43// btn.attachEvent(‘onclick‘,function () {44// alert("我们给按钮添加了一个事件2222");45// });46// btn.attachEvent(‘onclick‘,function () {47// alert("我们给按钮添加了一个事件3333");48// });49505152 } 53 </script>
事件注册兼容处理:
1 <script> 2/* 3 谷歌和ie8注册方式不同, 4 所以我们要进行判断支持哪种注册方式,就使用哪种注册方式添加事件 5*/ 6function myEventListener(element,type,fn) { 7if( element.addEventListener ){ 8 element.addEventListener(type,fn); 9 }elseif( element.attachEvent ){ 10 element.attachEvent("on"+type,fn); 11 }else{ 12 element["on"+type] = fn; 13 } 14 } 15 myEventListener(btn,‘click‘,function () { 16 alert("兼容版的事件注册方式"); 17 }); 18 </script>
2.解绑事件的兼容方式
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7 window.onload = function () { 8/** 9 * 一、事件三要素 10 * 事件源 11 * 事件类型 12 * 事件处理程序 13 * 14 * 15 * 二、注册事件三种方式 16 * 第一种: 17 * 事件源.on事件类型 = 事件处理程序 18 * 第二种: ie8不支持 19 * 事件源.addEventListener(‘事件类型‘,事件处理程序,false) 20 * 第三种: chrome不支持 21 * 事件源.attachEvent(‘on事件类型‘,事件处理程序) 22 * 23 * 24 * 三、事件解绑 25 * 第一种: 26 * 事件源.on事件类型 = null 27 * 第二种: ie8不支持 28 * 事件源.removeEventListener(‘事件类型‘,事件处理程序,false) 29 * 第三种: chrome不支持 30 * 事件源.detachEvent(‘on事件类型‘,事件处理程序) 31 * 32 * 33 * */34var btn = document.getElementById(‘btn‘); 35var btn2 = document.getElementById(‘btn2‘); 36// 事件注册兼容方式37function myEventListener(element,type,fn) { 38// 主流浏览器注册方式39if( element.addEventListener ){ 40 element.addEventListener(type,fn,false); 41// 42 }elseif( element.attachEvent ){ 43 element.attachEvent("on"+type,fn); 44 }else{ 45 element["on"+type] = fn; 46 } 47 }// 事件解绑兼容方式 48function myRemoveEventListener(element,type,fn) { 49if( element.removeEventListener ){ 50 element.removeEventListener(type,fn,false); 51 }elseif( element.detachEvent ){ 52 element.detachEvent("on"+type,fn); 53 }else{ 54 element["on"+type] = null; 55 } 56 } 5758function fn() { 59 alert("兼容版的事件注册方式"); 60 } 61 myEventListener(btn,‘click‘,fn); 62// 独立fn是为了浏览器能区分每个事件注册 63 btn2.onclick = function () { 64 myRemoveEventListener(btn,‘click‘,fn); 65 } 6667 console.log( btn.addEventListener ); 68 console.log( btn.attachEvent ); 6970 } 71 </script> 72 </head> 73 <body> 74 <button id="btn">按钮</button> 75 <button id="btn2">解绑事件</button> 76 </body> 77 </html>
五.event事件对象兼容问题
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7/** 8 * 9 * 事件对象兼容写法: 10 * event IE不兼容 window.event火狐(Firefox 不支持) 11 * event = event || window.event; 12 * 13 * 事件目标元素兼容写法: 14 * event.target IE9.0版本才开始支持 15 * event.srcElement 火狐(Firefox 不支持) 16 * event.target = event.target || event.srcElement; 17 * 18 * 19 * */2021 window.onload = function () { 22var btn = document.getElementById(‘btn‘); 23 btn.onclick = function (event) { 24// console.log(event);25// console.log(window.event);26 event = event || window.event; // 短路写法27 event.target = event.target || event.srcElement; // 短路写法28// event.target29 console.log( event.target ); 30 console.log( event.srcElement ); 31 } 3233 } 34 </script> 35 </head> 36 <body> 37 <button id="btn">按钮</button> 38 </body> 39 </html>
目前暂时那么多,遇到就更新!
原文:http://www.cnblogs.com/mrszhou/p/7705654.html
内容总结
以上是互联网集市为您收集整理的JavaScript--兼容问题总结全部内容,希望文章能够帮你解决JavaScript--兼容问题总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。