JavaScript/JQuery/TypeScript
JavaScript/JQuery/TypeScript
夏日米米茶
这个作者很懒,什么都没留下…
展开
-
解决引入lodash库(或其他第三方库)时TS报错:TS7016: Could not find a declaration file for module lodash
可以在 src 目录下的 “shims-vue.d.ts” 文件里增加如下代码。原创 2023-08-22 18:16:00 · 1804 阅读 · 0 评论 -
H5页面可以引用的一些JS常用小方法
写了一些单个的小页面可以引入的常用js方法,省了自己手写的时间,需要时可以保存为js文件然后直接引用。原创 2023-06-07 15:29:37 · 910 阅读 · 0 评论 -
Vue3推荐的替代Vuex的新一代状态管理工具:Pinia 配置教程
Pinia 官方网站:pinia.vuejs.org一、安装Pinianpm install pinia --save二、配置Pinia(默认项目都使用 TypeScript ,默认后缀都是.ts)在 src 目录内新建一个 store 的目录,然后在此目录下新建一个 index.ts 文件,内容如下:import { createPinia } from 'pinia'const store = createPinia()export default store三、在项目中注.原创 2022-03-22 17:46:44 · 2848 阅读 · 0 评论 -
解决vscode红色波浪线的ts报错:找不到模块“store” ts(2307),不识别@别名路径
使用TS构建vue3项目时,如果使用 import ******* from ‘*********’ 发生红色波浪线报错,可以修改 tsconfig.json 文件:// 在 compilerOptions 对象里添加 baseUrl 和 paths{ "compilerOptions": { "target": "esnext", "useDefineForClassFields": true, "module": "esnext", "moduleResoluti原创 2022-03-22 14:44:54 · 11906 阅读 · 4 评论 -
window.open在新窗口打开页面时被浏览器屏蔽的解决方法
使用 window.open() 方法打开新窗口会被浏览器拦截,可以绕开这个拦截机制,利用异步调用并使用变量后赋值url的方法,代码如下:$.ajax({ url:'your url', type: 'get', success: (data, status, xhr) => { // 新建变量,实例化window.open,然后再赋值url const _window = window.open() _window.location.href = 'your url' }})原创 2022-03-21 18:35:48 · 1503 阅读 · 0 评论 -
files文件分片上传+计算MD5值(sparkMD5),使用file.slice(start, end)方法
因为要跟后端交互,上传前要拿到文件的已上传信息,所以要给后端传MD5码,这个需要先计算出文件的MD5码,用 spark-md5 插件来计算一、计算出文件的MD5值要配合js的 FileReader 函数来使用 SparkMD5import SparkMD5 from 'spark-md5'// 计算MD5getMD5(file, fileListID) { // 使用sparkMD5的ArrayBuffer类,读取二进制文件 const spark = new SparkMD5.Arr原创 2021-12-21 12:23:08 · 7130 阅读 · 7 评论 -
使用SockJS和StompJS实现WebSocket订阅服务
一、首先用npm安装 socketJS 和 stompJSnpm install sockjs-clientnpm install stompjs二、在页面中引入这2个jsimport SockJS from 'sockjs-client'import Stomp from 'stompjs'三、初始化websocket连接,定义一个对象(socketClient)接收订阅服务的实例化// 初始化ws连接initSocketConnection () { const _url =原创 2021-11-03 17:59:28 · 4486 阅读 · 2 评论 -
webpack打包时提示:The following entrypoint(s) combined asset size exceeds the recommended limit
如果webpack打包时提示:The following entrypoint(s) combined asset size exceeds the recommended limit,可以设置 “vue.config.js” ,增加如下配置内容:module.exports = {//以上省略默认的一些配置参数 configureWebpack: config => { // 不是开发环境时生效 if (process.env.NODE_ENV !== 'development') {原创 2021-08-11 18:39:14 · 6513 阅读 · 3 评论 -
VUE中(img)图片加载失败时(onerror)显示替换的图片
需要使用img标签上的一个属性 onerror ,绑定一个本地图片地址,以下是VUE里的写法:HTML代码:<img alt="" :src="item.iconPath" :onerror="defaultImg" />JS代码export default { data () { return { defaultImg: 'this.src="' + require('@/assets/images/app_icon.png') + '"', } }}...原创 2021-07-01 11:17:53 · 2521 阅读 · 0 评论 -
javascript 实现中文排序
使用js的数组的sort方法,传参时再调用 localeCompare 方法let ary = ['今日头条','西瓜视频','火山小视频','抖音','穿山甲']ary.sort((a,b) => { return a.localeCompare(b,"zh"); })原创 2021-06-24 17:42:21 · 650 阅读 · 0 评论 -
转:VUE-CLI报错 Unexpected console statement (no-console)
版权声明:本文为CSDN博主「crazy_zhangcong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/crazy_zhangcong/article/details/88710470使用iview-admin 执行npm run build 指令时报错entrypoint size limit: The following entrypoint(s) combined asset size excee.转载 2021-05-19 15:45:48 · 237 阅读 · 0 评论 -
递归树
function toTreeData(data,pid){ function tree(id) { let arr = [] data.filter(item => { return item.parent_id === id; }).forEach(item => { arr.push({ area_id: item.area_id,原创 2021-04-21 15:33:00 · 104 阅读 · 0 评论 -
axios请求后端返回验证码图片,前端vue显示验证码图片
原文链接 https://blog.csdn.net/weixin_45817240/article/details/111589847用axios请求后端接口,得到验证码图片,但前端无法直接显示验证码图片,这是因为后端返回的不是一个json字符串,而是一个文件流格式,需要前端转换成base64编码。发送请求的接口:export function GetCaptcha (data) { return Axios对象({ url: '后端请求接口地址', meth转载 2021-03-31 16:39:56 · 4299 阅读 · 0 评论 -
webstorm识别alias别名@
在项目的根目录新建一个新文件 alias.config.js在js里面写上如下代码:/** * 由于 Vue CLI 3 不再使用传统的 webpack 配置文件,故 WebStorm 无法识别别名 * 本文件对项目无任何作用,仅作为 WebStorm 识别别名用 * 进入 WebStorm preferences -> Language & Framework -> JavaScript -> Webpack,选择这个文件即可 * */const resolve =转载 2021-03-26 16:11:01 · 1487 阅读 · 0 评论 -
在网页上添加微信分享按钮,关注微信号等按钮
转自:http://www.cnblogs.com/GmrBrian/p/3593071.html微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添加分享到朋友圈,关注微信号等按钮。一、微信浏览器通过 Mac 远程调试 iPhone 上微信自己的网页,我们可转载 2016-05-24 17:32:26 · 6751 阅读 · 2 评论 -
[微信小程序] 使用AntV F2 绘制双Y轴
F2的官方给了一个示例 https://f2.antv.vision/zh/examples/component/legend#custom ,但是不够清晰和简洁,所以我自己简单改造了一下,供大家参考代码运行环境是在 微信小程序里 执行的// 小程序里的初始化onInitChart(F2, config) { const chart = new F2.Chart(config) // 图表数据,格式要对上,数值类型必须是数字不能是字符串 const data = [原创 2020-12-14 13:33:30 · 1756 阅读 · 1 评论 -
chrome浏览器跨域请求samesit验证码一直提示过期或无法获取cookies而Firefox能正常登录
原文转自https://www.cnblogs.com/gigi2653/p/13426051.html开发环境下,修改了本机host映射,请求的接口地址跟本机开发环境的域名不同源(请求跨域),在使用新版Chrome浏览器后,在登录页面输入验证码时,总是提示验证码过期,但是换用firefox却能正常登录,是因为验证码接口和登录接口的session不一致(跨域问题),新版谷歌浏览器加入了 SameSite。解决方法:在chrome中打开链接: chrome://flags/#site-isolatio转载 2020-11-02 15:04:02 · 1999 阅读 · 0 评论 -
Render函数的参数
使用vue的Render函数时,可以传以下参数:{ // 和`v-bind:class`一样的 API // 接收一个字符串、对象或字符串和对象组成的数组 'class': { foo: true, bar: false }, // 和`v-bind:style`一样的 API // 接收一个字符串、对象或对象组成的数组 style: { color: 'red', fontSize: '14px' }, // 正常的 HTML 特性原创 2020-08-20 12:29:51 · 2789 阅读 · 0 评论 -
ajax请求后端生成文件,返回到前端js下载文件的方法
如果你使用常规的 new Blob 方法,出现生成文件很慢,造成请求超时的情况,就只能改用传统的form 提交表单的方法了// 把后端返回的文件流变成一个 Blob 对象const blob = new Blob([data], { type: 'application/vnd.ms-excel' })// 设置文件名const fileName = name ? name + '.xls' : '导出的表格文件.xls'// 对于<a>标签,只有 Firefox 和 Chrome(内原创 2020-06-18 14:41:19 · 3746 阅读 · 0 评论 -
前端js发送请求下载excel文件的方法
如何发送请求这里就不再介绍了,直接从请求发送后开始吧发送的数据格式为:FormData 格式,发送方式为 :post 方式1.首先使用 new FormData() 来创建你要发送的参数,例如:let formObj = new FormData()formObj.append('columns', 'yourData')2.从后端返回的文件流中开始创建下载文件,例如:ajax(formObj).then(response => {// 把后端返回的文件流变成一个 Blob 对象,.原创 2020-05-15 15:38:42 · 2621 阅读 · 0 评论 -
javascript的switch case语句,case一次写多个值的判断写法
默认的switch case语句是一个case判断一个值,如果需要一个case判断多个值,可以这么写switch (code) { case '1': case '2': console.log('1,2') break default: console.log('0') break}...原创 2020-04-23 11:58:10 · 21761 阅读 · 0 评论 -
如何在导出的CSV表格里不使用科学计数法保存数字格式
在你需要更改的那条数据里,拼接上一个 ‘\t’ 符号即可'\t' + yourData使用 ‘\t’ 拼接出来的字符串就不会用科学计数法保存了原创 2020-04-17 12:19:49 · 3633 阅读 · 0 评论 -
用js创建video元素本地预览,并获取video元素的真实分辨率
使用 document.createElement(‘video’) 创建了一个video元素后,直接用 video.width 获取到的尺寸永远是0,要用下边的方法获取1、先把所选的本地video文件生成本机预览urlconst videoSrc = window.URL.createObjectURL(yourFile)2、创建video对象,并给video对象设置本地可预览的url...原创 2020-04-08 15:23:28 · 7229 阅读 · 1 评论 -
View UI(iview) 的组件内置方法增加额外参数
今天用iview的上传组件 Upload 的时候,需要在点击上传按钮时多接收几个参数,发现内置的方法:before-upload=“handleBeforeUpload”handleBeforeUpload (file) { console.log(file)}这个内置方法不能自定义传参,需要进行特殊的写法,使用箭头函数,改成这样::before-upload="(file) ...原创 2020-04-02 14:40:37 · 1392 阅读 · 0 评论 -
input type=file 用axios发送请求给后端,使用FormData格式发送请求
今天在做一个文件上传功能时,遇到一个问题,把前端用input上传的file发送给后端,像往常一样用axios传data,用QS stringify 序列化数据发送给后端,并不接受,查了好多资料,才解决,原来我们的后端不接受 payload 方式上传,只能用 FormData 格式,把所有参数都放在 FormData 内发送过去即可。html 部分代码,使用了iview框架:<Form r......原创 2020-03-11 10:44:28 · 4635 阅读 · 0 评论 -
Android 和 IOS 使用 WebViewJavascriptBridge 进行交互
转发原文地址:https://www.jianshu.com/p/e37ccf32cb5b,https://www.jianshu.com/p/d12ec047ce52,http://www.imooc.com/article/23258原生和H5的交互主要是通过第三方插件 WebViewJavascriptBridge,本文主要是介绍 JS 部分,原生的Android或者IOS写法请另行搜索。...转载 2020-01-10 17:48:26 · 1934 阅读 · 0 评论 -
Facebook,Google用户登录的接入
根据官方的接入文档,编写适合自己用的接入代码1.Facebook接入// 加载Facebook JS SDK(function(d, s, id) { // Load the SDK asynchronously var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(...原创 2020-01-06 18:28:20 · 1817 阅读 · 0 评论 -
Swiper.js 制作一屏显示多个slider的效果
Swiper.js 官方网站说明:https://www.swiper.com.cn/api/effects/196.html使用Swiper.js制作一屏显示多个slider时,按照官方给出的API说明,发现不能满足自定义缩放大小,于是自己琢磨了一下,发现一个关键参数 slidesPerView,官方给出的解释是:slidesPerView: 设置slider容器能够同时显示的slide...原创 2019-12-26 17:18:29 · 10415 阅读 · 0 评论 -
JS禁止屏幕滚动(遮罩层弹出后),移动端+桌面端
如果想让遮罩层弹出后,屏幕不能滚动,可以设置 body 的样式:overflow:hidden;单独设置body的样式只能在桌面浏览器内起作用,移动端并不管用,还需要给 html 元素也设置一样的样式,并且都加上:height:100%下边是给出 jQuery 的设置方法:$('body,html').css({'overflow':'hidden', 'height':'100...原创 2019-10-29 17:22:09 · 948 阅读 · 3 评论 -
解决多个 swiper 插件冲突,以及不能放在display:none容器里的问题
根据官方文档说明:https://www.swiper.com.cn/api/start/new.html如果需要多个swiper,除了要用不同的变量初始化之外,还需要再把 pagination 的值设置不同的名字如果需要把swiper放在display:none的切换容器里,则要加上 observer: true例如:var mySwiper = new Swiper('#s1', {...原创 2019-10-18 14:07:07 · 859 阅读 · 2 评论 -
转载:IPv6正则表达式 + CIDR 前缀校验
原文地址:https://blog.csdn.net/jiangfeng08/article/details/7642018斯蒂芬·瑞恩写了一个非常有用的正则表达式,可用于匹配任何一个合法的IPv6地址。以下为正则表达式的代码:/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa...转载 2019-04-10 17:57:55 · 2829 阅读 · 1 评论 -
Ajax 发送请求结合 Promise 使用实例
将一个promise对象放在某个常量中,在promise对象里调用 XMLHttpRequestconst ajaxPromise = function(params) { return new Promise((resovle, reject) => { let xhr = new XMLHttpRequest(); xhr.open(params.type || "...原创 2019-09-24 15:22:37 · 687 阅读 · 1 评论 -
【js实例】js发送验证码后倒计时60秒
首先写一个按钮:<input type="button" id="btn" value="免费获取验证码" onclick="settime(this)" />然后写js代码://定义一个60秒计时器变量var countdown=60; //构造一个倒计时函数function settime(obj) { if (countdown == 0) { obj.rem转载 2016-08-11 14:27:36 · 5350 阅读 · 0 评论 -
[JS插件] fullPage:适合移动端web整屏滚动组件
与 fullPage.js 相比,fullpage 不依赖任何 js 库,可独立使用。功能上虽然不如 fullPage.js 强大,但一般使用已经足够了,尤其是它的动画效果,你可以自由设定缩放、旋转以产生各种各样的动画效果。同时它还支持 fullPage.js 所没有的水平滚动。兼容桌面端(ie5.5+) 和 手机端。教程地址:http://www.dowebok.com/143.html原创 2015-09-17 15:49:35 · 7870 阅读 · 0 评论 -
用递归方法寻找树的某个子元素,并修改其name的值
updateNode (data) { const fn = function (_treeData) { if (_treeData.id === data.id) { _treeData.title = data.name } else { if (_treeData.children.length &gt; 0) { for (let j = 0; j &l...原创 2019-03-18 16:41:18 · 951 阅读 · 0 评论 -
vue页面渲染完成,但console报错
使用 v-for 循环显示一个数组对象的属性值,但无法获取1级对象嵌套下的2级对象属性值, 比如:{{ itemData.State.Name }}这是因为页面渲染的时候,VUE里return出来的data数据里还只有1级对象,还没有2级对象的值。解决的方法是给页面的最外层div加上一个 v-if=”!isLoad” ,然后在data属性里设置初始值 return isLoad: tru...原创 2018-09-14 15:45:14 · 1842 阅读 · 0 评论 -
[jquery实例] 鼠标悬停显示当前隐藏元素
将鼠标放在列表中的其中一个元素上,即刻显示当前鼠标下的隐藏列表元素:// 鼠标悬停显示隐藏元素$(document).ready(function(){ $("当前元素的class或者id").mouseover(function(){ $(this).children("鼠标当前元素下的隐藏元素").fadeIn(); }); $("当前元素的class或原创 2015-06-15 09:34:06 · 1352 阅读 · 0 评论 -
[js实例] js控制audio背景音乐
首先构建html代码:(记得一定要给audio标签增加src属性,否则在微信里不能播放)<!--音乐开始--><audio id="music" autoplay="autoplay" loop="loop" preload="preload" src="images/music.mp3"><source src="images/music.mp3" type="audio/mp3"><sou原创 2015-06-02 18:48:13 · 4653 阅读 · 0 评论 -
[jquery] 简单判断滚动条位置
<script> //窗体滚动事件 $(window).scroll(function(){ //获取滚动条距离顶部的距离 var tall = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; //判断滚动的距离 if (tall>=0 &&原创 2015-06-02 18:42:07 · 1595 阅读 · 0 评论 -
[JS实例] input type=file 自定义样式的方法
原文地址:http://www.jb51.net/web/39559.html 为什么要美化file控件?试想一下,别的孩子都穿戴整齐漂亮,其中两个孩子怎么都不鸟你,太不和谐了。原始的file控件是这样的: 别以为这个是由一个text和一个button组合成的,它是一个控件,html代码为:<input type="file" name="file" /> 既然这样我们就用一个text和一转载 2016-06-21 17:40:10 · 4798 阅读 · 0 评论