1、如何不刷新页面改版URL参数
window.history.pushState(state,title,url)
pushState() 带有三个参数: 一个状态对象, 一个标题, 以及一个可选的URL地址。 state: 一个与添加的记录相关联的状态对象,主要用于popstate事件。该事件触发时,该对象会传入回调函数。也就是说,浏览器会将这个对象序列化以后保留在本地,重新载入这个页面的时候,可以拿到这个对象。如果不需要这个对象,此处可以不填 url:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。 title:新页面的标题。但是,现在所有浏览器都忽视这个参数,所以这里可以填空字符串。
2、根据数量计算换行显示展开收起
1、需求如图
在一行超过指定数量后,可能数量超过,也可能单个文字长度达到,出现展开按钮。
2、解决办法
1、计算一行大概能够显示几个标签,大概多少字,根据返回数量来进行切割计算是否换行了。 2、计算每一个标签的宽度,超过指定宽度显示展开按钮。
3、vue实现跳转浏览器新的标签页
let newpage = this.$router.resolve({ name: 'info', query:{ type: 1, id:id } }) window.open(newpage, '_blank');
4、localStorage 设置过期时间?
localStorage除非人为手动清除,否则会一直存在浏览器中,但可能某些情况下我们可能需要localStorage有一个过期时间,那该怎么实现?
// data 实际的值 // time 当前时间戳 // expire 过期时间 Storage.prototype.getExpire= key =>{ let val =localStorage.getItem(key); if(!val){ return val; } val =JSON.parse(val); if(Date.now()-val.time>val.expire){ localStorage.removeItem(key); return null; } return val.data; }
//使用 localStorage.setExpire("token",'xxxxxx',4000); window.setInterval(()=>{ console.log(localStorage.getExpire("token")); },1000)