1、事件处理程序
function addEvent(obj, type, fn) { //添加事件兼容
if (obj.addEventListener) {
obj.addEventListener(type, fn,false);
} else if (obj.attachEvent) {
obj.attachEvent(‘on’ + type, fn);
}else{
obj[‘on’+type]=fn;
}
}

function removeEvent(obj, type, fn) { //移除事件兼容
if (obj.removeEventListener) {
obj.removeEventListener(type, fn,false);
} else if (obj.detachEvent) {
obj.detachEvent(‘on’ + type, fn);
}else{
obj[‘on’+type]=null;
}
}
2、阻止事件冒泡
//不冒泡的事件:blur focus load unload
//阻止冒泡:标准浏览器:event.stopPropagation()
//ie :event.cancelBubble = true
function stopPropagation() {
if(event || event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
3、跨浏览器兼容 阻止事件的默认行为
function preDef(evt) {
var e = evt || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
PS:虽然return false;可以实现这个功能,但有漏洞;第一:必须写到最后,这样导致中间的代码执行后,有可能执行不到return false;第二:return false写到最前那么之后的自定义操作就失效了。
4、判断是否为当前对象的id
var targetId = event.target?event.target.id :event.srcElement.id;

5、客户端屏幕尺寸:
function client() {
if(window.innerHeight !=null){
return {
height:window.innerHeight,
width:window.innerWidth
}
}else if(document.compatMode ===”CSS1Compat”){
return {
height:document.documentElement.clientHeight,
width:document.documentElement.clientWidth
}
}else{
return {
height:document.body.clientHeight,
width:document.body.clientWidth
}
}
}
笔记:window.screen.width __得到电脑分辨率
6、选择文本
if(window.getSelection){
txt = window.getSelection().toString(); //w3c
}else{
txt = document.selection.createRange().text; //ie
}
7、得到计算后的样式
function curStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return window.getComputedStyle(obj,null)[attr];
}
}

原声js 的兼容(屏幕尺寸、事件处理程序、阻止事件冒泡、事件目标等等)相关推荐

  1. 这是用原声js编写的地址选择器,使用select编写的三联选择器

    这是用原声js编写的地址选择器,使用select编写的三联选择器 <!DOCTYPE html> <html lang="en"> <head> ...

  2. (常用代码)原声JS 实现倒计时的效果。分/秒/毫秒/

    (常用代码)原声JS 实现倒计时的效果.分/秒/毫秒/ 第一步:构建HTML 结构和样式 <!-- 构建 HTML --> <div class="timing" ...

  3. ## 原声js制作简单灯光开关

    标签代码:html部分: 开灯 关灯 Css样式: #left,#right{ border-radius: 50%; color: red; line-height: 30px; width: 40 ...

  4. 原声js,取消事件冒泡,点击按钮,显示box,点击屏幕其他地方,box隐藏

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  5. 原声JS面向对象实现的简单轮播

    为什么80%的码农都做不了架构师?>>>    给自己定下了一周上传一篇总结博客的计划,实行起来却是坎坷的.这一周还有不到两个小时就过去了,只得拿之前的一则轮播凑个数.代码中的参数尚 ...

  6. 原声JS瀑布流加延迟加载

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  7. 原声js控制浏览器全屏或者退出全屏

    开启全屏 if (document.documentElement.requestFullscreen) {document.documentElement.requestFullscreen(); ...

  8. 原声JS瀑布流加延迟载入

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. 原声JS判断程序运行平台Pc OR Mobile

    var userAgent = navigator.userAgent.toLowerCase(); if(!userAgent.match(".*(ip(hone|od)).*" ...

最新文章

  1. Windows下更改mysql data目录
  2. 371. 两整数之和
  3. JVM调优:指定垃圾回收器组合
  4. 二分二题-P1678,P3902【二分,LIS】
  5. 第十期:过去50年间,十大热门语言及发明者大盘点
  6. C#前后端操作json数据
  7. mysql 5.6.19 linux_MySQL 5.6.19升级到 5.7.9 步骤记录
  8. IO流——字节流、字符流
  9. linux 安装nvm ,管理多版本nodejs
  10. 使用NodeJS连接到MySQL数据库Client does not support authentication protocol requested by server; consider upg
  11. 搭建自己的企业QQ [2007年6月15日]
  12. 最新emoji表情代码大全_2019七夕节最新撩妹句子大全,浪漫的七夕节表情包集锦...
  13. tp-link无线网卡linux下的驱动,Ubuntu14下安装无线网卡驱动(TP-LINK TL-WN823N)
  14. 模拟退火算法求解超市布局问题
  15. java分形_【Java之八】15分钟了解分形之朱利亚集
  16. shell执行curl_Linux curl命令详解
  17. 铁憨憨的Python 爬虫学习 Python_Learn
  18. [解决方案]excel2010分析工具库无法运行“ FUNCRES.NLAM! Showatpdialog”宏
  19. 物联网与大数据(三)从大数据看物联网
  20. saltstack配置管理和数据系统

热门文章

  1. 高一凡老师的数据结构
  2. 体育门户里杀出的程咬金:虎扑凭什么?
  3. ASP.NET Core 使用SignalR后台实时推送数据给Echarts展示图表
  4. Image Quality Assessment: From Error Visibility to Structural Similarity
  5. Redis(七) - 封装Redis工具类
  6. free-excel (wps版) | 第八章Excel数据可视化
  7. 《ANSYS Workbench 16.0超级学习手册》——1.2 ANSYS Workbench 16.0平台及模块
  8. Oracle项目管理系统之预算变更
  9. 5G基础知识学习(十五)—NSA手机的5G信号是怎么显示的?
  10. 小白第一次跑马拉松扫盲帖 (不就跑个步吗,PB/配速/兔子/能量胶/盐丸…这些是什么鬼)