Skip to content

Latest commit

 

History

History
executable file
·
137 lines (106 loc) · 3.17 KB

本地存储.md

File metadata and controls

executable file
·
137 lines (106 loc) · 3.17 KB

本地存储与事件对象

两种方式

  1. 会话型存储。sessionStorage
var storage = window.sessionStorage;//obj
//存值
storage.setItem('memeda','12345600');
//读取
var obj = sessionStorage;
var data = obj.getItem('memeda');
  1. 永久性存储。localStorage
var storage = window.localStorage;//obj
//存值
storage.setItem('memeda','12345600');
//读取
var obj = localStorage;
var data = obj.getItem('memeda');

方法

obj.removeItem('memeda');//删除某个
obj.clear();//清空

无法设置生命周期,只对本地有效,与服务器无关。

BOM(浏览器对象模型)

location 
histroy(历史记录)
navgation(浏览器客户端)
screen(屏幕对象)
window.confirm("确定删除?")//返回值为布尔
setTimeout();
reload() //重载
replace() //替换当前页面 覆盖历史记录
histroy.go(1)//前进一页
histroy.go(-1)//后退一页
back() //后退 后退键
forward() //前进
ajax不会生成histroy

navigator(返回浏览器客户端)
navigator.appVersion(返回手机或是电脑操作系统信息)
navigator.userAgent(浏览器内核信息)
if(navigator.userAgent.indexOf('Chrome')>0 && navigator.userAgent.indexOf('Edge')==-1){
    //判断为谷歌浏览器
}else if(navigator.userAgent.indexOf('Chrome')>0 && navigator.userAgent.indexOf('Edge')>0){
    //IE
}else if(navigator.userAgent.indexOf('firefox')>0){
    //火狐
}else if(navigator.userAgent.indexOf('UCborwser')>0){
    //UC
}

screen 对象
高度 height offsetHeight
宽度 width  offsetWidth

事件对象

获取事件对象

var event = window.event;
event.preventDefault();//阻止默认行为 入sumbit a链接等

事件冒泡

当父级和子级都绑定了事件之后,如果子元素的事件被触发,父级也会被触发。(由内向外)

解决办法

第一种 阻止冒泡
var event = window.event();
event.stopPropagation();//非IE
event.cancelBubble()//IE

第二种:事件委托

对于同一种事件,直接把事件委托给最大的父级。(从根本解决冒泡)

$("#memeda").click(()=>{
var event = window.event();//获取事件对象
if(event.target.nodeName.toLowercase()=="li"){
    li被点击的后的操作
}else if(event.target.nodeName.toLowercase()=="a"){
   a被点击的后的操作
}else if(event.target.nodeName.toLowercase()=="div"){
   div被点击的后的操作
}
})

事件捕获

与事件冒泡相反,当父级和子级都绑定了事件之后,如果子元素的事件被触发,父级也会被触发。(由外向内)

案列:数组去重

var arr = [1,2,3,4,5,6,7,8,9,1,2,3,4];
var tmp = [];
for(var i =0 ;i<arr.length;i++ ){
    if(tmp.indexOf(arr[i]==-1)){
        tmp.push(arr[i]);
    }
}

ES6一句话数组去重

Array//数组原型对象
from 将一个可以迭代的数据对象 转换为数组
set //数据类型{1,2,3,4,5,6,7,8,9} 不允许值重复
var arr = [1,2,3,4,5,6,7,8,9,1,2,3,4];
var newarr = Array.from(new Set(arr));