
前端
vieber
欢迎关注本人公众号:程序员软技能
展开
-
Invalid: `{ presets: [{option: value}] }` Valid: `{ presets: [[‘presetName‘, {option: value}]] }
nuxt启动项目报错。原创 2022-12-01 15:59:04 · 544 阅读 · 0 评论 -
如何消除添加到主屏幕的icon没有黑边
head里面增加下面这个就可以网页用safari浏览器打开的时候就可以添加到主屏幕了。改正jpeg之后,添加到主屏幕就没有黑边了。也不会有白边,效果正好。苹果在制作圆角icon样式,用了png就会这样,经查我改成jpeg之后,没有透明度了,就好了。但是如果用png的话就会有黑边,和下面这样。原创 2022-09-25 22:35:32 · 474 阅读 · 0 评论 -
pnpm Module not found: Error: Can‘t resolve ‘vue-hot-reload-api
从npm升级到pnpm的时候,我安装的pnpm支持必须是node12版本以上,先使用nvm升级了一下node版本pnpm启动报错信息pnpm Module not found: Error: Can't resolve 'vue-hot-reload-api解决方案执行安装这个模块 pnpm install --save vue-hot-reload-api...原创 2022-04-22 16:42:47 · 4624 阅读 · 0 评论 -
微信小程序生成二维码长按不识别问题解决
问题背景使用微信接口生成二维码jslet url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' + this.options.ticket; let that = this; wx.request({ url: url, responseType: 'arraybuffer', success (res) {原创 2022-03-15 19:47:34 · 5146 阅读 · 0 评论 -
微信小程序获取URL中参数
//这里this为页面对象var url = this.route //当前页面urlvar options = this.options //如果要获取url中所带的参数可以查看options参考链接https://segmentfault.com/q/1010000008005954原创 2022-03-11 15:27:51 · 1647 阅读 · 0 评论 -
如何防止CSRF攻击
什么是CSRFCSRF(cross-site request forgery)跨站请求伪造:攻击者诱导受害者进去第三方网站,在第三方网站,向被攻击网站发送垮站请求,利用受害者在被攻击网站已经获取的登陆凭证。绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作。一个典型的CSRF攻击有着如下的攻击流程:受害者登陆a.com,并保留了登陆凭证(cookie)攻击者引诱受害者访问了b.comb.com向a.com发送了一个请求: a.com/act=xxx。浏览器会默认携带a.com的cooki原创 2022-01-30 22:32:14 · 4612 阅读 · 0 评论 -
iframe如何自适应高度,父页面嵌入子页面
代码如下 var iframe = document.getElementById('iframe'); setInterval(() => { var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow; console.log(iframeWin.document.body.scrollHeight) if (ifra原创 2021-12-13 20:25:21 · 762 阅读 · 0 评论 -
puppeteer设置cookie获取网页内容
使用puppeteer进行页面渲染的时候因为要登录才能获取到数据,我们不想走登录流程,想直接把cookie设置好,就需要设置cookies。按照下面的方式进行设置const cookies = { url: url, name: '', value: '' }; await page.setCookie(cookies); await page.goto(url);第一个参数是URL,也就是要增加cookie的URL地址。后面两个就是这个URL下面要增加的原创 2021-08-23 19:03:59 · 3853 阅读 · 0 评论 -
ERROR: Failed to set up Chromium r901912! Set “PUPPETEER_SKIP_DOWNLOAD“ env variable to skip downloa
报错原因npm install puppeteer的时候报下面这个提示ERROR: Failed to set up Chromium r901912! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.{ Error: read ETIMEDOUT at TLSWrap.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ETIMEDOUT', cod原创 2021-08-23 14:59:09 · 13419 阅读 · 3 评论 -
使用echars星图导致安卓手机文字重叠问题
使用echarts-wordcloud做星图的时候,结果在安卓上面有些字明显重叠在一起了。echarts-wordcloudhttps://github.com/ecomfe/echarts-wordcloud经看文档,发现gridSize这个字段最有可能是控制字之前的间距,然后就使用这个属性进行设置,问题就解决了。style.gridSize = 19;...原创 2021-08-23 14:48:59 · 308 阅读 · 0 评论 -
vscode好用插件
Live ServerGitLensTODO HighlightWakaTime原创 2021-07-30 17:48:06 · 137 阅读 · 0 评论 -
npm本地包调试npm link方式
生成npm link第一步跳转到对应npm包目录下面,执行sudo npm link,生成本地包,/usr/local/lib/node_modules/会在这个目录下面生成。使用npm link到对应项目下面,使用刚刚生成的link,npm link 包名。这样就可以把项目中以来的npm包指向到本地的项目下面了。yalc方式还有一种是yalc方式,在安装sudo npm i yalc -gyalc的时候提示我node版本过低,我现在版本是8,但是yalc依赖的node版本最小为10.只能等后续升原创 2021-06-23 20:22:34 · 3645 阅读 · 0 评论 -
Migrate entirely to HTTPS to continue having cookies sent to same-site subresources导致图片加载不出来问题
背景本地调试的时候发现图片不显示出来,线上没有问题,手机上也没有问题,就电脑Chrome有问题。经仔细查看,发现浏览器控制台有这个报错。看起来意思是说无法把cookie因为协议的不同进行跨站带过去。因为我网站的cookie是在a.com下面的,图片也是这个域名下面的,但是图片是https的链接,而我本地调试是http的协议。临时解决方案:地址栏打开chrome://flags/#schemeful-same-site,将选项设置为Disabled。这样这个错误就不报了,图片就正常显示了。原创 2021-06-11 20:13:37 · 5200 阅读 · 0 评论 -
Oops! Something went wrong! :( ESLint couldn‘t find the plugin “eslint-plugin-@typescript-eslint“.
报错信息Oops! Something went wrong! :(ESLint couldn't find the plugin "eslint-plugin-@typescript-eslint". This can happen for a couple different reasons:1. If ESLint is installed globally, then make sure eslint-plugin-@typescript-eslint is also installed原创 2021-06-11 16:30:16 · 9043 阅读 · 0 评论 -
记录一次异步导致导致res获取到的数据为空
问题代码 res = JSON.parse(xhr.responseText); var img = new Image(); img.onload = function() { document.body.appendChild(img); reslove(res); };}问题排查在onload之前进行debug在每一个关键节点尽心打断点排查。问题原因在reslove(res);的时候res为空,但是在JSON.parse(xh原创 2021-06-07 21:09:22 · 1054 阅读 · 0 评论 -
SecurityError: localStorage is not available for opaque orig
使用jest配置单元测试的时候运行npm run test得到报错信息SecurityError: localStorage is not available for opaque origins解决方法就是更改jest.config.js里面的testEnvironment的字段为node 就行了module.exports = { verbose: true, testEnvironment: 'node'};package.json里面的scripts为"test":原创 2021-05-28 17:19:22 · 1920 阅读 · 0 评论 -
/node_modules/lodash.template/index.js:1558 throw result; ^ SyntaxError: Unexpected token = 报错解决
报错信息node_modules/lodash.template/index.js:1558 throw result; ^SyntaxError: Unexpected token = at Function (<anonymous>) node_modules/lodash.template/index.js:1550:12问题背景使用vue-server-renderer编译,插入html到模版中const fs = require('fs')原创 2021-05-06 20:34:31 · 551 阅读 · 1 评论 -
js放页面顺序问题
内联js代码放在body前面,操作dom的部分,因为页面还没有渲染,导致操作失败,不起作用,不能放在前面js放在后面,页面已经渲染完成,这个时候操作dom页面会闪一下,不合适js一般建议放在底部,因为js不同于html和css,他是阻塞式加载,浏览器加载js的时候,其他资源不可以并行加载。并且js的下载和执行都属于加载,只有js执行完成,其他资源才开始加载js引擎和gui渲染引擎是互斥的,js执行过程中gui引擎会挂起(渲染的当前状态会被保存),当js执行结束后,渲染线程才会继续...原创 2021-04-26 15:26:39 · 136 阅读 · 0 评论 -
h5调起app技术调研
目标有app跳转到app目标页,无app跳转到下载页,或者跳转到appstore。方案一先跳转app对应页面,然后过2s钟跳转下载页。然后中间检测如果visibilitychange事件触发,或者pagehide触发,则清除跳转到下载页的定时器。window.location.href = localPageUrl;let timer = setTimeout(() => { window.location.href = downloadUrl;}, 2000);docume原创 2021-04-19 11:24:01 · 191 阅读 · 0 评论 -
前端骨架屏方案调研
css通过伪元素实现骨架样式,通过操作样式实现骨架和页面的动态切换在模版中来实现骨架屏使用一个Base64的图片来作为骨架屏使用图片作为骨架屏; 简单暴力,让UI同学花点功夫吧;小米商城的移动端页面采用的就是这个方法,它是使用了一个Base64的图片来作为骨架屏。使用专门的.vue 文件来完成骨架屏使用专门的.vue 文件并自动插入静态骨架屏自动生成骨架屏...原创 2021-03-22 21:24:35 · 247 阅读 · 0 评论 -
按需打包引入lodash
方式1(全路径引用)在我的需要用到lodash的a.vue文件中import cloneDeep from 'lodash/cloneDeep'然后就可以直接用 cloneDeep(xx);方式2(使用插件优化)npm install lodash-webpack-plugin -Snpm install babel-plugin-lodash -S这两个插件优化引用模块是 ES6 规范import {isEmpty, isObject, cloneDeep} from.原创 2021-03-11 17:17:58 · 1314 阅读 · 0 评论 -
H5 webview vedio如何去掉视频下载按钮
<video controls controlslist="nodownload" id="video" src=""></video>原创 2021-01-14 18:51:27 · 1260 阅读 · 0 评论 -
vue-awesome-swiper swiper/dist/css/swiper.css 报not found错误
This dependency was not found:* swiper/dist/css/swiper.css in本地拉取远程master代码,然后执行报这个错误,经查是本地vue-awesome-swiper版本不对,因为之前安装过,导致报错,应该是版本不一致导致然后删除node_modules模块重新安装也不行,经发现是自己的package-lock.json文件没有删除,导...原创 2020-04-09 11:27:38 · 9371 阅读 · 4 评论 -
axios检测后端返回状态吗401未登陆
axios.interceptors.response.use( response => { // 对响应数据做点什么 return response; }, error => { // 对响应错误做点什么 if (err.response.status === 401) { } ...原创 2020-01-18 16:51:40 · 1288 阅读 · 0 评论 -
ios输入框的maxlength限制200字符,但是实际可以输入超过200
ios输入框的maxlength限制200字符,但是实际可以输入超过200bug,这个but我在vue中改为使用watch检测input值改变,用js判断字符串长度来限制输入长度,解决。 watch: { inputText(value) { this.limitMaxLength(); } }, limitMa...原创 2020-01-14 17:54:27 · 2697 阅读 · 1 评论 -
ios输入框必须重压或长按才能唤起软键盘
使用了fastclick之后,在输入框上绑定click事件,然后自动focus就可以了。<textarea class="input-content" @click="focus" :placeholder="placeholderText" v-model="inputText" :maxlength="maxInputTexLength"></textarea&g...原创 2020-01-13 22:48:06 · 677 阅读 · 0 评论 -
vue动画显示
在使用vue动画的时候需要循环展示某个信息,我们使用@keyframes show-in { 0% { opacity: 0; transform: scale(.5) translateY(0); } 20% { opacity: 1; transform: scale(1) translateY(0);...原创 2020-01-03 16:32:58 · 620 阅读 · 0 评论 -
ios上面浏览器使用z-index失效
发现是父元素使用了这个属性-webkit-overflow-scrolling: touch;导致z-index失效。去掉这个属性就行了。原创 2019-12-16 19:01:20 · 714 阅读 · 0 评论 -
移动端H5上传图片的一些坑
移动端做图片上传功能,大体上要经历以下几个步骤。利用fileReader,读取blob对象或者file对象,将图片转为data uri的形式利用canvas,在页面上新建一个画布,利用canvas提供的api,将图片画入到这个画布中利用canvas.toDataUrl(),进行图片的压缩,得到图片的data url值上传文件步骤一当中,在进行图片压缩的时候,我们要先进性判断文件的大小...原创 2019-01-19 12:32:14 · 3410 阅读 · 1 评论 -
Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime
npm run build的时候报错Module build failed: ModuleBuildError: Module build failed: Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (64)解决方案Had to do...原创 2018-12-03 16:18:59 · 2425 阅读 · 0 评论 -
div模拟textarea实现输入高度自适应效果
核心代码使用contenteditable="true"属性&lt;div data-v-b0c64392="" contenteditable="true" spellcheck="false" placeholder="输入评论..." c原创 2018-11-26 14:52:57 · 554 阅读 · 0 评论 -
css进度条文字叠加效果实现
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">原创 2018-11-02 17:31:04 · 1960 阅读 · 0 评论 -
linux安装mysql
下载rpm源 MySQL Yum Repositorywget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm此地址是从 https://dev.mysql.com/downloads/repo/yum/ 找到的,本人选择第一个。安装rpm源 MySQL Yum Repositorysudo ...原创 2018-09-16 23:52:41 · 190 阅读 · 0 评论 -
vue实现移动端自动弹起软键盘
移动端显示输入框框直接focus不会弹出软键盘解决思路我们让点击的时候可以通过点击label关联input,这个input(input1)不要通过display:none, 隐藏,我们要通过display: block;position: absolute;z-index: -1;left: -1000px;top: 0px;隐藏,这样其实我们点的时候就是点击输入框,然后键...原创 2018-09-05 19:10:20 · 16216 阅读 · 0 评论 -
vue单页面应用百度统计
代码示例_hmt.push(['_trackPageview', '/virtual/login']);router.afterEach((to, from) =&amp;gt; { console.log(to); console.log(to.path); window._hmt.push(['_trackPageview', to.path]);});参考文...原创 2018-08-21 20:19:38 · 1164 阅读 · 0 评论 -
学习前端模块化方案的一些总结
今天看了一天的前端的模块化的解决方案,发现如果是初学者会有很多的疑问,网上看了很多文章渐渐才有了头绪。首先模块化的方案其实一直都用,从我们最基本的函数来说可以说就是一个模块化的过程,可是这个模块化的过程会有很多的弊端,首先就是变量冲突的问题,命名冲突的问题,全局作用域的污染,一旦项目构建的越来越大,会导致我们越来越痛苦,所以出现了很多的解决方案,模块化就是目前比较流行的一种方法,es6出来完全就实现原创 2016-02-22 21:50:05 · 3924 阅读 · 0 评论 -
vue移动端弹起蒙层滑动禁止底部滑动
解决办法在蒙层弹起的时候将body设置为fixed定位在蒙层消失的时候将body恢复原位popupVisible(newValue) { if (newValue) { document.body.style.position = 'fixed'; document.body.style.width = '100%'; document....原创 2019-02-18 16:42:37 · 2065 阅读 · 0 评论 -
vuex无法跟踪Object新增的属性新增字段变化视图不被更新解决办法
两种解决办法在对象设置的时候设置增加新字段,通过新复制对象来设置state.obj = Object.assign({},state.count)使用vue的set进行设置新字段Vue.set(state.count, 'count', 0);...原创 2019-03-15 15:16:28 · 2253 阅读 · 0 评论 -
vue使用mintui弹窗弹起来,底部页面滚动bug解决
经过dom层层注释缩小反馈终于找到问题所在。问题经过我在弹起弹窗的时候,设置了popupVisible为true然后触发了vue的updated生命周期钩子函数然后我在这个函数里面做了去this.$refs.container.offsetHeight导致页面重绘然后就导致了底部页面向上滚动解决办法去掉updated函数里面的重绘方法...原创 2019-04-26 11:05:48 · 1261 阅读 · 0 评论 -
mockjs使用心得
他的思路就是在我们本地mock数据的时候,我们定义json数据规则,然后mockjs根据规则,生成对应的数据,然后使用这个数据,作为你对应的响应进行返回就可以了。读取mock配置文件生成mock数据层const fs = require('fs');const path = require('path');const Mock = require('mockjs')module.exp...原创 2019-04-24 14:27:06 · 825 阅读 · 0 评论