也是查找了好多资料才找到的,这种方式,可以消除 后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。
1 2 3 4 5 6 7 |
<script language="javascript"> //防止页面后退 history.pushState(null, null, document.URL); window.addEventListener('popstate', function () { history.pushState(null, null, document.URL); }); </script> |
现在,我们项目中就使用了第三种方式。在常用浏览器中,都可以禁用了后退。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//禁用浏览器返回 function fobidden_back() { //防止页面后退 history.pushState(null, null, document.URL); window.addEventListener('popstate', back_common) } //启用浏览器返回 function enable_back() { history.go(-1); window.removeEventListener('popstate', back_common) } function back_common() { history.pushState(null, null, document.URL); } |
mb里可以直接配置项禁用回退 wkeSetDebugConfig(webview, "backKeydownEnable", "0") from:利用js实现 禁用浏览器后退 (jvbaopeng.com)
View Details模式
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function obj1(name,age){ this.name=name; this.age=age; this.identity=function(){ var li=document.createElement("p"); var txt=document.createTextNode("白小纯"); li.appendChild(txt); document.body.appendChild(li); } } var person2=new obj1('白小纯',123); person2.identity(); alert(person2.name); |
工厂模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function obj2(){ var lio=new Object(); //创建对象,对象属性赋值 lio.name='lio'; lio.attr='男'; lio.identity=function(){ var li=document.createElement("p"); var txt=document.createTextNode("白小纯"); li.appendChild(txt); document.body.appendChild(li); }; return lio; } var person=obj2(); //alert(person.name); |
原型模式
1 2 3 4 5 6 7 8 9 10 11 12 |
function obj3(){ //this.name='lio'; } obj3.prototype.name='lio'; obj3.prototype.identity= function (name) { alert("实际上是"+name); }; var person3=new obj3(); //检测是在实例中还是在原型中 alert(person3.hasOwnProperty("name")); alert(person3.hasOwnProperty("rename")); person3.identity('白小纯'); |
混合模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function obj4(age) { this.age=age; this.rename='aaaa'; }; obj4.prototype={ constructor:obj4, name:'lio', age:123, identity: function (name) { alert(name+"实际上是白小纯"); } }; var person4=new obj4(18); alert(person4.hasOwnProperty("age"));//true person4.identity('lio'); |
from:https://blog.csdn.net/Amouzy/article/details/125974435
View Details今天开发遇到个问题,服务器后端的Long类型数据,传到前端会出现精度丢失,如:164379764419858435,前端会变成164379764419858430。
在浏览器中做测试可知,这就是一个精度丢失的问题。
前端使用的axios来发起请求的,最开始以为是浏览器的问题,但是通过postman来请求是没问题,打开浏览器开发工具,在xhr下的response响应中也是没问题的,代表是请求成功后数据格式化出问题了,下面讲解下各种解决方案。
View Details软件简介 Musicn 是一个下载高品质音乐的命令行工具。 安装
1 2 3 4 5 6 |
# 主推荐pnpm $ pnpm add -g musicn # or $ yarn global add musicn # or $ npm install musicn -g |
使用
1 2 3 |
$ musicn 稻香 # or $ msc 稻香 |
附带歌词下载 (默认是不附带):
1 2 3 |
$ msc 稻香 --lyric # or $ msc 稻香 -l |
指定文件夹路径下载 (默认是当前路径):
1 2 3 |
$ msc 稻香 --path ../music # or $ msc 稻香 -p ../music |
资源 音乐来源:咪咕(API 是从公开的网络中获得) 说明 部分歌曲支持无损音乐,支持格式:flac、mp3 优先搜索下载高品质音乐(无损 -> 320K -> 128K) 暂时只支持下载咪咕平台上已有的音乐 在 windows 的 git Bash 中不支持显示下载进度条并且不支持上下切换选歌,问题是 cli-progress 不兼容 node version > 14 from:https://www.oschina.net/p/musicn
View Details
1 2 3 4 5 6 7 |
function toFixed(num, fixed) { var times = Math.pow(10, fixed); var newNum = num * times + 0.5; newNum = parseInt(newNum, 10) / times; return newNum; } |
View Details
准备代码:
const res = []
const arr = [1, 2, 3, 4, 5]
function t(num) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('定时器', num)
resolve()
}, 1000)
})
}
function t2(item) {
console.log('进入res')
res.push(item)
}
调用方法: 引入jQuery和owl.carousel相关组件
1 2 3 4 |
<link href="css/owl.carousel.css" rel="stylesheet"> <link href="css/owl.theme.css" rel="stylesheet"> <script src="js/jquery.js"></script> <script src="js/owl.carousel.js"></script> |
HTML
1 2 3 4 5 6 |
<div id="owl-demo" class="owl-carousel"> <a class="item"><img src="img/owl1.jpg" alt=""></a> <a class="item"><img src="img/owl2.jpg" alt=""></a> <a class="item"><img src="img/owl3.jpg" alt=""></a> ...... </div> |
JS调用
1 2 3 |
$(function(){ $('#owl-example').owlCarousel(); }); |
参数说明: 参数 描述 默认值 items 幻灯片每页可见个数 5 itemsDesktop 设置浏览器宽度和幻灯片可见个数,格式为[X,Y],X 为浏览器宽度,Y 为可见个数,如[1199,4]就是如果浏览器宽度小于1199,每页显示 4 张,此参数主要用于响应式设计。也可以使用 false [1199,4] itemsDesktopSmall 同上 [979,3] itemsTablet 同上 [768,2] itemsTabletSmall 同上,默认为 false false itemsMobile 同上 [479,1] itemsCustom singleItem 是否只显示一张 false itemsScaleUp slideSpeed 幻灯片切换速度,以毫秒为单位 200 paginationSpeed 分页切换速度,以毫秒为单位 800 rewindSpeed 重回速度,以毫秒为单位 1000 autoPlay 自动播放,可选布尔值或整数,若使用整数,如 3000,表示 3 秒切换一次;若设置为 true,默认 5 秒切换一次 false stopOnHover 鼠标悬停停止自动播放 false navigation 显示“上一个”、“下一个” false navigationText 设置“上一个”、“下一个”文字,默认是[“prev”,”next”] [“prev”,”next”] rewindNav 滑动到第一个 true scrollPerPage 每页滚动而不是每个项目滚动 false pagination 显示分页 true paginationNumbers 分页按钮显示数字 false responsive responsiveRefreshRate 每 200 毫秒检测窗口宽度并做相应的调整,主要用于响应式 200 […]
View Details
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 方法一 (typeof window !== 'undefined' ? window : (typeof process === 'object' && typeof require === 'function' && typeof global === 'object') ? global : this); // 方法二 var getGlobal = function () { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } throw new Error('unable to locate global object'); }; |
View Details
vue项目中在单独的js文件中使用element ui 例如要使用MessageBox组件 例如要使用MessageBox组件 1.引入组件 import { MessageBox } from "element-ui"; 2.使用 MessageBox.confirm("这是一个内容", "这是一个标题" ,{undefined distinguishCancelAndClose: true, confirmButtonText: ‘确认’, showClose:false, showCancelButton:false }).then(()=>{undefined // 点击确认按钮的回调 }) 一般是在响应拦截器中使用,亲测有效 ———————————————— 版权声明:本文为CSDN博主「流年*痕迹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_52007839/article/details/111663753
View Details一、问题描述 执行 npm run build:prod
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
ERROR TypeError: Class extends value undefined is not a constructor or null TypeError: Class extends value undefined is not a constructor or null at Object.<anonymous> (C:\Users\司超龙\IdeaProjects\vue\base_education_vue\base_education_third_3.0+\grass-roots teaching system\node_modules\mini-css-extract-plugin\dist\CssDependency.js:12:46) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object.<anonymous> (C:\Users\司超龙\IdeaProjects\vue\base_education_vue\base_education_third_3.0+\grass-roots teaching system\node_modules\mini-css-extract-plugin\dist\index.js:12:45) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! vue-admin-template@4.4.0 build:prod: `vue-cli-service build` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the vue-admin-template@4.4.0 build:prod script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\司超龙\AppData\Roaming\npm-cache\_logs\2021-03-26T13_04_34_482Z-debug.log |
执行num run build:prod 报错,但是npm run dev没问题 二、解决 TypeError: Class extends value undefined is not a constructor or null at Object.<anonymous> (C:\Users\司超龙\IdeaProjects\vue\base_education_vue\base_education_third_3.0+\grass-roots teaching system\node_modules\mini-css-extract-plugin\dist\CssDependency.js:12:46) CssDependency的问题,依赖包不兼容 执行npm add webpack@4.5.0,解决 from:https://blog.csdn.net/qq_24654501/article/details/115254960
View Details