<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[阿之阿佐]]></title><description><![CDATA[小小的努力型web前端]]></description><link>https://blog.youkuaiyun.com/u010214074</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010214074]]></copyright><item><title><![CDATA[el-date-picker的type设为datetimerange，即日期时间段，限制到时分秒]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/142060472</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/142060472</guid><author>u010214074</author><pubDate>Mon, 09 Sep 2024 15:33:36 +0800</pubDate><description><![CDATA[【代码】el-date-picker的type设为datetimerange也就是日期时间段选择的时候，限制到时分秒的方法。]]></description><category></category></item><item><title><![CDATA[移动端safari，video播放外源url 403问题]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/128807154</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/128807154</guid><author>u010214074</author><pubDate>Mon, 30 Jan 2023 18:41:22 +0800</pubDate><description><![CDATA[video元素添加crossorign="anonymous"]]></description><category></category></item><item><title><![CDATA[webstorm,idea 右键菜单管理]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/125620059</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/125620059</guid><author>u010214074</author><pubDate>Tue, 05 Jul 2022 14:59:55 +0800</pubDate><description><![CDATA[File->Settings->Appearance & Behavior->Menus and ToolbarEditor Popup Menu 是修改在文件内部(即代码行处)打开的右键菜单
Editor Tab Popup Menu 是修改在打开文件的tab页签上右击时修改的右键菜单
Project View Popup Menu 是修改在项目目录里右击文件或文件夹的右键菜单...]]></description><category></category></item><item><title><![CDATA[sentry sourcemap]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/123506251</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/123506251</guid><author>u010214074</author><pubDate>Tue, 15 Mar 2022 16:58:38 +0800</pubDate><description><![CDATA[1、对于版本号，Sentry.init和sentry-cli（或者@sentry/webpack-plugin）需要对应上。

这里可以使用git tag解决；


const release = childProcess
  .execSync('git describe --abbrev=0')
  .toString()
  .replace('\n', '');

2、sourcemap对应不上问题。

一般来说，js问题最后会有sourceMappingURL注释，值为sourcemap文件路径。]]></description><category></category></item><item><title><![CDATA[mocha+typescript+es6 module]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/121384129</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/121384129</guid><author>u010214074</author><pubDate>Wed, 17 Nov 2021 17:58:35 +0800</pubDate><description><![CDATA[一、需求：

测试用例使用ts，并且支持es6 module

二、需要安装的包：


@types/expect、@types/mocha、babel-register、expect、mocha、ts-node、npm-env

三、script脚本添加：


"test": "npm-env TS_NODE_PROJECT=\"tsconfig.testing.json\" mocha  test/**/**.test.ts  -r ts-node/register"

四、tsconfig.testi]]></description><category></category></item><item><title><![CDATA[ubuntu docker搭建sentry服务]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/120141886</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/120141886</guid><author>u010214074</author><pubDate>Mon, 06 Sep 2021 18:40:22 +0800</pubDate><description><![CDATA[Docker 19.03.6+
	Docker-Compose 1.28.0+
	4 CPU Cores
	8 GB RAM
	20 GB Free Disk Space
一、安装docker，docker-compose

教程：https://www.runoob.com/docker/ubuntu-docker-install.html



curl -sSL https://get.daocloud.io/docker | sh // 国内 daocloud 一键安装命令
	docker -v..]]></description><category></category></item><item><title><![CDATA[css按钮点击放大缩小效果]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/119239711</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/119239711</guid><author>u010214074</author><pubDate>Mon, 06 Sep 2021 18:38:59 +0800</pubDate><description><![CDATA[These dependencies were not found:                                                  friendly-errors 10:27:16
                                                                                    friendly-errors 10:27:16
* child_process in ./node_modules/@se.]]></description><category></category></item><item><title><![CDATA[css 按钮呼吸动画效果]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/119569382</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/119569382</guid><author>u010214074</author><pubDate>Tue, 10 Aug 2021 14:35:34 +0800</pubDate><description><![CDATA[&lt;src
       src="get-btn,png"
       alt="立即领取"
       class="animated infinite pulse slow"
       /&gt;




@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  50% {
    -webkit-transfor.]]></description><category></category></item><item><title><![CDATA[nuxt 使用typescript引入node模块报错]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/119239734</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/119239734</guid><author>u010214074</author><pubDate>Fri, 30 Jul 2021 10:31:40 +0800</pubDate><description><![CDATA[These dependencies were not found:                                                  friendly-errors 10:27:16
                                                                                    friendly-errors 10:27:16
* child_process in ./node_modules/@se.]]></description><category></category></item><item><title><![CDATA[剧集数字兼容性显示]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/118962235</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/118962235</guid><author>u010214074</author><pubDate>Wed, 21 Jul 2021 11:22:25 +0800</pubDate><description><![CDATA[先上效果：

普通屏：



大屏：



也就是根据盒子大小来排布，能排满就直接排列，否则显示...

思路就是获取外部盒子宽度，除以每个集数的宽度+marginRight，得出每一列最多排列的个数maxNum，然后根据：集数总和 &gt; (maxNum*2)，来决定是否显示省略号，剩下的就是判断某几个元素的marginRight是否为0（以免超过盒子宽度，导致不必要的换行），整个组件如下：


&lt;template&gt;
  &lt;ul class="episode-ul" @click=..]]></description><category></category></item><item><title><![CDATA[nuxt定制vant主题]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/118696229</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/118696229</guid><author>u010214074</author><pubDate>Tue, 13 Jul 2021 11:44:13 +0800</pubDate><description><![CDATA[1、npm install babel-plugin-import less less-loader path -D

注意：less-loader版本为5.0.0

2、plugin/vant-ui.js


import Vue from 'vue'
import {Toast } from 'vant'
Vue.use(Toast)
// 将所有 Toast 的展示时长设置为 2000 毫秒
Toast.setDefaultOptions({ duration: 3000 });
Vue.protot]]></description><category></category></item><item><title><![CDATA[husky(7.0.0+)+pretty-quick+eslint+commitlint]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/118576172</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/118576172</guid><author>u010214074</author><pubDate>Thu, 08 Jul 2021 16:26:54 +0800</pubDate><description><![CDATA[payarn add @commitlint/config-conventional

yarn add @commitlint/cli

yarn add husky

注意：最新版husky配置跟旧版本有差别~~~~~~~~~~~~~

https://www.npmjs.com/package/husky


yarn prepare
npx husky add .husky/pre-commit "yarn pretty"  //每次提交前执行pretty命令
git add .husky/pre-]]></description><category></category></item><item><title><![CDATA[nuxt 引入全局scss文件，mixins,function或变量等]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/118576038</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/118576038</guid><author>u010214074</author><pubDate>Thu, 08 Jul 2021 16:11:28 +0800</pubDate><description><![CDATA[https://www.npmjs.com/package/@nuxtjs/style-resources


export default {
  buildModules: [
    '@nuxtjs/style-resources',
  ],

  styleResources: {
   // your settings here
   sass: [],
   scss: [],
   less: [],
   stylus: [],
   hoistUseStatements: true  ]]></description><category></category></item><item><title><![CDATA[input file注意]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/90722048</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/90722048</guid><author>u010214074</author><pubDate>Thu, 08 Jul 2021 16:08:31 +0800</pubDate><description><![CDATA[1、multiple="multiple" capture="camera"
安卓表现为 可拍照可图库 ios 只可拍照
2、multiple="multiple" 无capture
安卓表现为 只可拍照 ios可拍照可图库
3、无multiple capture="camera"
安卓表现为 只可图库 ios只可拍照
4、无multiple 无capture
安卓ios 都可拍照可图库



...]]></description><category></category></item><item><title><![CDATA[js获取url参数，支持vue hash模式]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/102932775</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/102932775</guid><author>u010214074</author><pubDate>Thu, 08 Jul 2021 16:08:09 +0800</pubDate><description><![CDATA[function getQueryString(name){
    const reg = new RegExp('(^|&amp;)' + name + '=([^&amp;]*)(&amp;|$)');
    const r = window.location.search.substr(1).match(reg) || window.location.hash.substring((w...]]></description><category></category></item><item><title><![CDATA[node 提取html中相同的内联style到class]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/118496959</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/118496959</guid><author>u010214074</author><pubDate>Mon, 05 Jul 2021 19:36:40 +0800</pubDate><description><![CDATA[const fs = require('fs');
let txt = fs.readFileSync('./test.html','utf8');
// console.log(txt);
const reg=/style\s*?=\s*?(['"])[\s\S]*?\1/g;
const regResult = txt.match(reg)
const regSet = new Set(regResult)
// console.log(regSet)
let index = 0
let result.]]></description><category></category></item><item><title><![CDATA[session通讯，前端活动页使用了临时域名，无法与主域名通讯问题]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/116313232</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/116313232</guid><author>u010214074</author><pubDate>Sat, 01 May 2021 01:49:24 +0800</pubDate><description><![CDATA[可以结合JWT方案，跳转到临时域名的时候，把生成的token添加到url上，然后前端读取其token,作为临时域名的token。注意跳转到临时域名之后，要马上去掉url上的token（使用window.history.replaceState），否则用户可能通过复制分享等操作泄漏出去
...]]></description><category></category></item><item><title><![CDATA[h5短信验证码复制/自动填充等问题]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/116313002</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/116313002</guid><author>u010214074</author><pubDate>Sat, 01 May 2021 01:44:50 +0800</pubDate><description><![CDATA[1、复制验证码出现2个重复验证码以及ios不自动填充验证码（安卓不支持自动填充？）问题：

  根据验证码长度限制输入框长度

2、验证码输入区域由4个input[maxlength=1]组成，ios无法自动填充问题

   可以在视窗外增加一个隐藏的1px大小的input[maxlength=4]，监听其值变化，回填以上4个input框

3、粘贴验证码，无法立刻填满4个input框问题：

   思路：监听粘贴事件，将粘贴板上的数字赋值给以上一个隐藏的1px大小的input[maxl...]]></description><category></category></item><item><title><![CDATA[rem 适配 系统文字大小]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/115960320</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/115960320</guid><author>u010214074</author><pubDate>Wed, 21 Apr 2021 16:08:41 +0800</pubDate><description><![CDATA[用户调大了系统/浏览器字体大小，导致布局错乱

解决办法：


			var u = navigator.userAgent

			var isAndroid = u.indexOf('Android') &gt; -1|| u.indexOf('Adr') &gt; -1

			// 只有安卓用户反馈，缩小范围降低风险

			if(isAndroid) {

			// 全屏幕宽度10rem

			var remFull =10

		...]]></description><category></category></item><item><title><![CDATA[前端JWT token维护方案（补充）]]></title><link>https://blog.youkuaiyun.com/u010214074/article/details/115960260</link><guid>https://blog.youkuaiyun.com/u010214074/article/details/115960260</guid><author>u010214074</author><pubDate>Wed, 21 Apr 2021 16:07:04 +0800</pubDate><description><![CDATA[一、前言

JWT的Token登录认证是目前比较流行的跨域认证解决方案。原理在于将认证信息保存在客户端，下次访问其他页面时，需要从客户端传递认证信息回服务器端

具体实现如下：

1.登录成功，后端生成带有access_token并返回前端，前端将access_token保存到本地（cookie或者localStorage，cookie遇跨域问题可以设置withCredentials）

2.其他请求将使用access_token请求接口资源，后端access_token校验通过则调用接口成功；如果toke]]></description><category></category></item></channel></rss>