博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript 兼容性问题处理
阅读量:3948 次
发布时间:2019-05-24

本文共 1790 字,大约阅读时间需要 5 分钟。

JavaScript 兼容性问题处理

1. JavaScript 兼容性处理

1.1 常见的兼容性问题

  • 事件监听的兼容性
  • 事件参数对象的兼容性
  • 事件源对象的兼容性
  • 事件冒泡处理的兼容性
  • 事件默认行为的兼容性
  • scrollTop 属性的兼容性
  • 获取非行内样式的兼容性

2. 事件监听兼容

2.1 事件监听的兼容性问题

  • W3C标准
    • 添加事件监听:addEventListener
    • 移除事件监听:removeEventListener
  • IE低版本标准
    • 添加事件监听:attachEvent
    • 移除事件监听:detachEvent

2.2 事件监听的兼容性语法

  • 事件监听兼容性常用语法
if(obj.addEventListener){
obj.addEventListener("事件名","事件处理函数")}else{
obj.attachEvent("on事件名","事件处理函数")}

2.3 事件监听兼容性练习

    

3. 事件参数对象的兼容性问题

3.1 参数对象

  • 事件参数 event 对象的常用属性
类别 描述
pageX 获取鼠标在整个文档中的X坐标
pageY 获取鼠标在整个文档中的Y坐标
screenX 获取鼠标在屏幕窗口中的X坐标
screenY 获取鼠标在屏幕窗口中的Y坐标
clientX 获取鼠标在可见容器中的X坐标
clientY 获取鼠标在可见容器中的Y坐标

3.2 解决方案

  • IE低版本的事件对象使用window.event表示
function (event){
var e = event || window.event;}

3.3 事件参数兼容性练习

  

4. 事件源对象的兼容性问题

  • IE的事件源对象的获取
    • window.event.srcElement
  • W3C事件源对象的获取
    • Event.target

4.1 事件源对象兼容性练习

  

5. 事件冒泡

5.1 事件冒泡和捕获

在这里插入图片描述

5.2 事件冒泡的兼容性问题

  • IE的事件冒泡的中止方法
    • window.event.cancelBubble
  • W3C事件冒泡的中止方法
    • stopPropagation
function addEventHandler(target , type , fn){
if(target.addEventListener){
target.addEventListener(type , fn); }else{
target.attachEvent("on"+type , fn); }}

5.3 事件冒泡的实战应用

  • 模态框功能
    
信息提示

6. 阻止默认事件的兼容性问题

  • IE的事件默认事件阻止方法
    • window.event.returnValue
  • W3C事件冒泡阻止方法
    • preventDefault
function prevent(ent){
if(window.event){
window.event.returnValue = false; }else{
ent.preventDefault(); }}

6.1 阻止默认行为兼容性练习

  跳转

7. scrollTop 属性的兼容性问题

  • scrollTop 属性值的获取方式
    • document.body.scroll属性(已废弃)
    • document.documentElement.scroll属性
var  scrollTop =  document.body.scrollTop || document.documentElement.scrollTop || 0

8. 获取样式的兼容性问题

  • 获取内嵌式外部样式的方式
    • 使用obj.currentStyle
    • 使用window.getComputedStyle
if(obj.currentStyle){
return obj.currentStyle[“attr”];} else {
return window.getComputedStyle(obj,null)[“attr”];}

9. 总结

  • JavaScript 兼容浏览器写法,做个笔记

转载地址:http://ycqwi.baihongyu.com/

你可能感兴趣的文章
把拒接电话作为已经接电话写到call log中
查看>>
FDN号码完全匹配
查看>>
Cosmos 拨号界面保存号码时先提示选择存储位置
查看>>
换卡或不插卡时删除通话记录
查看>>
静音模式下,来闹钟能响铃。
查看>>
调整提醒的优先级
查看>>
恢复出厂设置时清除闹钟
查看>>
如何添加一个提醒
查看>>
Cosmos 关机情况下来闹钟后增加是否开机选择功能
查看>>
日历的提醒内容可以根据需要修改
查看>>
如何使USSR编辑界面默认输入法为123
查看>>
手机中嵌入默认的快速拨号号码
查看>>
Call Setting中的Line Switch功能作用
查看>>
GPS数据解析
查看>>
The top 6 programming languages for IoT projects
查看>>
67 open source tools and resources for IoT
查看>>
蓝牙低功耗(BLE)应用领域
查看>>
nRF51822低功耗睡眠函数应用
查看>>
Android 语言码_国家码
查看>>
从iphone和android应用来看公司
查看>>