JS常见兼容性问题

兼容性问题:函数(方法)兼容

描述:部分W3C指定的函数,有部分老的浏览器不支持

解决:

条件判断,如果有,则使用,添加原型方法,例如 String 的 trim 方法

if(!String.prototype.trim){
    String.prototype.trim = function(){
        return this.replace(/^\s\s*/,‘‘).replace(/\s\s*$/,‘‘)
    }
}

兼容性问题:浏览器视口、屏幕、页面宽高获取

解决:

1. 获得当前页面 HTML文档所在窗口 宽度

//所有浏览器都支持这种写法,不存在兼容性问题var w = document.body.clientWidth
var h = document.body.clientHeight

2. 获得浏 览器窗口内部 宽度 / 高度 ,比 HTML文档所在窗口宽度 多 16px

// document.documentElement.clientWidth IE浏览器写法
// window.innerWidth 其他浏览器写法
var w = document.documentElement.clientWidth || window.innerWidth
var h = document.documentElement.clientHeight || window.innerHeight

3.获得 HTML页面内容 宽度 / 高度 (文档实际高度)

//没有兼容性问题
var h = document.body.scrollHeight
var h = document.body.scrollWidth

4. 获得当前页面 被卷去的高度 / 宽度

//window.pageYOffset 其他浏览器写法
//document.documentElement.scrollTop IE浏览器写法
var offsetY = window.pageYOffset || document.documentElement.scrollTop

兼容性问题:事件

获取事件

    document.onclick=function(ev){//谷歌火狐的写法,IE9以上支持,往下不支持;
        var e=ev;
        console.log(e);
    }
    document.onclick=function(){//谷歌和IE支持,火狐不支持;
        var e=event;
        console.log(e);
    }
    document.onclick=function(ev){//兼容写法;
        var e=ev||window.event;
        var mouseX=e.clientX;//鼠标X轴的坐标
        var mouseY=e.clientY;//鼠标Y轴的坐标
    }

原文地址:https://www.cnblogs.com/xiaoliwang/p/9734641.html

时间: 2024-10-10 11:53:41

JS常见兼容性问题的相关文章

html常见兼容性问题

html常见兼容性问题? 1.双边距BUG float引起的  使用display 2.3像素问题 使用float引起的 使用dislpay:inline -3px 3.超链接hover 点击后失效  使用正确的书写顺序 link visited hover active 4.IE z-index问题 给父级添加position:relative 5.Png 透明 使用js代码 改 6.Min-height 最小高度 !Important 解决' 7.select 在ie6下遮盖 使用ifram

IE下常见兼容性问题总结

概述 本小菜平时主要写后台程序,偶尔也会去写点前端页面,写html.css.js的时候,会同时开着ie6.ie7.ie8.ie9.chrome.firefox等浏览器进行页面测试,和大部分前端开发一样,经常被ie折磨,下面就总结一些常见的浏览器兼容性问题,放一起方便自己总结学习,我知道这类型文章,很多大牛都总结过,且写的特别专业.不过我写的都是自己最近碰到的,本人技术一般,也希望各位多加指点. 一.IE6/IE7对display:inline-block的支持欠缺 1)表现描述 这个应该算是很经

js常见执行方法

$(document).load(); 当web页面以及其附带的资源文件,如CSS,Scripts,图片等,加载完毕后执行此方法.常用于检测页面(及其附带资源)是否加载完毕. $(document).ready();当页面DOM对象加载完毕,web浏览器能够运行JS时,此方法即被触发.如果你想尽快执行JS,可以使用此方法.[在html的头部的script标签中的,不处于ready()中的JS代码将早于ready()执行] $(document).unload();此事件在停止浏览页面的时候触发,

JS常见事件以及函数

1.js enter键激发事件 document.onkeydown = function (e) {            if (!e) e = window.event;            if ((e.keyCode || e.which) == 13) {                $("#btnSubmit").click();            }        } 2. JS常见事件以及函数

js常见事件

1.onblur:(使用在表单元素中,当元素失去焦点的时候执行) 2.onchange:(使用在表单元素中,当某些东西改变是执行) 3.onclick:(鼠标点击一个元素时执行) 4.ondblclick:(鼠标双击一个元素时执行) 5.onfocus:(使用在表单元素中,当元素获得焦点时执行) 6.onkeydown: (按下某个按键时执行) 7.onkeypress:(按下和释放某个按键时执行) 8.onkeyup:(释放某个按键时执行) 9.onload:(在body标签中使用,载入页面的

JS常见面试题目 选择的第几个radio,name一样都叫radiogroup

<html> <head> <script language="javascript"> function parse() { } </script> </head> <body> <form onsubmit = "return parse()"> <input name="radioGroup" type="radio"/> &

touch.js——常见应用操作

touch.js--常见应用操作 基本事件: touchstart   //手指刚接触屏幕时触发 touchmove    //手指在屏幕上移动时触发 touchend     //手指从屏幕上移开时触发 touchcancel  //触摸过程被系统取消时触发(少用) 一.事件绑定(常用,重要) touch.on( element, types, callback ); 功能描述:事件绑定方法,根据参数区分事件绑定和事件代理. 参数描述: 参数 类型 描述 element element或str

js教程(7) -- JS 常见错误、JS加速、保留词、ES5(6)特性

2019.09.24: 学习内容:JS 常见错误.JS加速.ES5(6)特性 补充:js保留词:https://www.w3school.com.cn/js/js_reserved.asp js版本及浏览器支持:https://www.w3school.com.cn/js/js_versions.asp 一.JS 常见错误: 1.=.==.=== 的含义 2.数字和字符串相加得到让人困惑的结果 3.JavaScript 中的数字均保存为 64 位的浮点数(Floats).所有编程语言,包括 Ja

js 常见弹出框学习

模拟系统的弹出框 系统自带的弹出框 总结 链接  http://blog.csdn.net/anhuidelinger/article/details/17024491 参考这个网站学习模态框的动态弹出   http://tympanus.net/codrops/2013/06/25/nifty-modal-window-effects/,网站提供打包好的资源下载. html中的基本结构: <div class="md-modal md-effect-1" id="mo