js的一些兼容融性问题
1.非行内样式获取
高级浏览器
- getComputedStyle(obox.false)//获取所有属性
ie浏览器
- box.currentStyle//获取所有属性
兼容写法
- function getStyle(ele,attr){//ele为获取元素,attr为属性。
var a = "";
if(ele.currentStyle){
a = ele.currentStyle[attr];
}else{
a = getComputedStyle(ele,false)[attr];
}
return a;
}
2.事件冒泡的兼容
高级浏览器
- e.stopPropagation()
ie浏览器
- e.cancelBubble = true;
兼容写法
- function stopBubble(e){
- if(e.stopPropagation){
- e.stopPropagation();
- }else{
- e.cancelBubble = true;
- }
- }
3.阻止默认事件
高级浏览器
- e.preventDefault()
ie浏览器
- e.returnValue = false
兼容写法
- function stopDefault(e){
- if(e.preventDefault){
- e.preventDefault()
- }else{
- e.returnValue = false;
- }
- }
4.DOM2级绑定事件
高级浏览器
- obox.addEventListener("click",fn)
ie浏览器
- obox.attachEvent("onclick",fn)
兼容写法和删除兼容
- //绑定兼容写法
- addEvent(obox,"click",fn1)
- function fn1(){
- console.log()
- }
- function addEvent(ele,type,cb){
- if(ele.addEventListener){
- ele.addEventListener(type,cb)
- }else if(ele.attachEvent){
- ele.attachEvent("on"+type,cb)
- }else{
- ele["on"+type] = cb;
- }
- }
- //删除的兼容
- removeEvent(obox,"click",fn1)
- function removeEvent(ele,type,cb){
- if(ele.removeEventListener){
- ele.removeEventListener(type,cb)
- }else if(ele.detachEvent){
- ele.detachEvent("on"+type,cb)
- } else{ele["on"+type] = null;
- }
- }
6.ajax的兼容
- var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft,XMLHTTP");
7.获取滚动条距离
- var sTop = document.documentElement.scrollTop || document.body.scrollTop
8.鼠标编码的兼容
- function getButton(evt){
- var e = evt || window.event;
- if(evt){
- return e.button;
- }else if(window.event){
- switch(e.button){
- case : return ;
- case : return ;
- case : return ;
- }
- }
- }
9.获取键盘编码的兼容
- evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;
js的一些兼容融性问题的更多相关文章
- js event 事件兼容浏览器 ie不需要 event参数 firefox 需要
js event 事件兼容浏览器 ie不需要 event参数 firefox 需要 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。
<html> <head> <title>Js日期选择器并自动加入到输入框中</title> <meta http-equiv="con ...
- nodejs——js 实现webSocket 兼容移动端
nodejs——js 实现webSocket 兼容移动端 //服务器端 //npm install --save ws const express = require('express'); cons ...
- IE和firefox火狐在JS、css兼容区别
1.firefox不能对innerText支持. firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了. ...
- JS/JQ常见兼容辅助插件
1.Respond.js Respond.js 是一个快速.轻量的 polyfill,用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-widt ...
- html5 video.js 使用及兼容所有浏览器
废话少说,直接开始 一.准备材料 video.js下载: http://www.videojs.com/ 二.代码 引入相关文件:(必须放在文件的开头,也是说一定要放在video标签之前) 贴入htm ...
- 加入收藏夹的js代码(求兼容chrome浏览器的代码)
从网上找了加入收藏夹的js代码,但不兼容chrome,不知道有没有兼容chrome的相关代码,希望有知道的告诉一下,谢谢! 代码如下 $("#id").click(function ...
- JS事件及其兼容用法
JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 1.事件流:描述的是从页面中接收事件的顺序. IE提出的事件冒泡流:事件开始由最具体的 ...
- JS中的兼容问题总结
今天总结总结在JS里面遇到的兼容性问题 1.获取滚动距离的兼容性问题: document.documentElement.scrollTop || document.body.scrollTop ...
随机推荐
- R-CNN/Fast R-CNN/Faster R-CNN
一.R-CNN 横空出世R-CNN(Region CNN,区域卷积神经网络)可以说是利用深度学习进行目标检测的开山之作,作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2 ...
- 一篇文章搞懂Python装饰器所有用法
01. 装饰器语法糖 如果你接触 Python 有一段时间了的话,想必你对 @ 符号一定不陌生了,没错 @ 符号就是装饰器的语法糖. 它放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上 ...
- Win7 双系统安装Centos7,并由windows引导程序引导
1. 在windows磁盘管理中,压缩卷,腾出40G,需保证一个磁盘设备最多只有3个主分区2. 网上下载centos7的dvd.iso3. 使用UltraISO刻录到U盘4. 重启系统F12使用usb ...
- Server 2012使用Windows PowerShell cmdlet安装角色和角色服务功能
Server 2012使用Windows PowerShell cmdlet安装角色和角色服务功能 Windows Server 2012 安装 SQL server 2008 出现了如下错误: 解 ...
- 用Keras搭建神经网络 简单模版(五)——RNN LSTM Regressor 循环神经网络
# -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) import matplotlib.pyplot as plt from ...
- array_splice 在数组某位置插入数据
$arr=array('a','b','c','d','e','f','g');//目标数组 $i_arr=array(');//要插入的数组 $n=;//插入的位置 array_splice($ar ...
- hdfs操作命令
文件操作命令:hdfs dfs -ls /hdfs dfs -mkdir /hdfs dfs -rm -rf /hdfshdfs dfs -duhdfs dfs -get /hdfs /localhd ...
- 服务器watchdog看门狗的理解
1.什么是watchdog?watchdog,中文名称叫做“看门狗”,全称watchdog timer,从字面上我们可以知道其实它属于一种定时器.然而它与我们平常所接触的定时器在作用上又有所不同.普通 ...
- CodeForces 1251A --- Broken Keyboard
[CodeForces 1251A --- Broken Keyboard ] Description Recently Polycarp noticed that some of the butto ...
- Linux selinux 防火墙
cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take ...