![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
yb_fan
最锋利的武器,也抵不过一颗无惧的心。
展开
-
Window atob() 方法
atob()方法用于解码使用base-64编码的字符串。base-64编码使用方法是btoa()。原创 2022-07-18 09:34:37 · 1280 阅读 · 0 评论 -
新开页面下载文件url鉴权
原本通过后端返回的地址,进行a标签新开页面进行下载,但项目后期,发现越权问题,需要前端将token跟账户传过来,进行鉴权验证,之前的项目中,有sso机构门户去验证当前浏览器是否登陆,目前所在的项目组,因为限制问题,无法之间去浏览器验证用户是否登录,需要前端自己传输token,当时方案两种:1、通过get请求,header加上token,url拼接参数进行验证,但是因为项目的业务层,视图层分包进行,导致不能通过此种方案2、通过post,最后验证发现底层的s3限制文件下载的方式,不能为post.原创 2022-03-10 21:10:44 · 789 阅读 · 0 评论 -
基於XMLHttpRequest封裝blob下載
因為近期項目場景問題,需要把之前的form表單提交形式的下載,獲取回調響應,網上各種方案不太符合我的需求,最終只能使用原生XMLHttpRequest獲取狀態碼進行事件處理1、封裝XMLHttpRequest/***文件下載**/downXHR = function(type,url,data,callback){ var xmlRequest = new XMLHttpRequest(); xmlRequest.open(type,url,true) ...原创 2021-12-31 10:48:33 · 803 阅读 · 0 评论 -
react下跨組件跨頁面監聽localStorage變化
1、在setItem的地方配置如下代碼 if (typeof window !== "undefined") { var orignalSetItem = localStorage.setItem; localStorage.setItem = function (key, newValue) { var setItemEvent = new Event("setItemEvent"); setItemEvent.newValue = newValue;原创 2021-12-30 15:55:23 · 800 阅读 · 1 评论 -
基于antdPro5的标签页面打开方式
效果图:目前react\vue\angular都是单页面的实现路由跳转方式但因为平台是后台管理系统,业务方想实现浏览器标签页切换的方式进行配置,以前多页面是采用iframe实现,页面性能大大降低,多页面本来就是很鸡肋的方式,奈何人在屋檐下,不得不低头首先实现要实现一个组件来管理路由吧,可以这么理解,如图的路径1、TagView的index.jsx,index.lessimport React, { useState, useEffect, useRef } from '...原创 2021-10-14 19:33:51 · 1709 阅读 · 2 评论 -
antd阿里云上传图片,基于私有库
项目中要实现图片直接上传到阿里云服务器,通过前端实现,直接访问阿里云的服务器1、首先要在主页面引入 <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"></script>因为本人项目是https的,如果你的项目是http,则如下: <script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min原创 2021-10-14 19:20:44 · 192 阅读 · 0 评论 -
antdPro中使用自带umi的fecth,Blob实现预览文件的踩坑之旅
1、因项目需要实现在线预览功能,正常后台返回blob流,进行如下代码设置便可 let documentType = mimeType(fileType); let blob = new Blob([res], { type: documentType + ';chartset=UTF-8' }); const blobUrl = window.URL.createObjectURL(blob); //down if (typ原创 2021-10-14 19:10:20 · 574 阅读 · 0 评论 -
react-router-dom BrowserRouter页面刷新404
最近遇到react-router-dom路由使用BrowserRouter,本地开发没问题,发布到服务器再次刷新就报404not found,原因解析:之所以你在浏览器内可以由首页跳转到其他路由地址,是因为这是由前端自行渲染的,你在React Router定义了对应的路由,脚本并没有刷新网页访问后台,是JS动态更改了location。当你刷新时,你首先是访问的后台地址,然后返回的页面内加载了React代码,最后在浏览器内执行;也就是说如果这个时候报404,是因为你后台并没有针对这个路由给出返回H原创 2020-11-26 15:46:56 · 1733 阅读 · 0 评论 -
安装Angular-Cli
经过n次的失败安装,终于在最后一次安装成功,为了使同学们少走弯路,现将经验写下来:1、查看你的node以及npm版本:node -v 查看node版本npm -v 查看npm版本要求所有版本都是最新的,不然可能会出错。2、设置淘宝镜像,这样下载东西就是从国内网站下载了,网速更快npm config set registry https://registry.np...原创 2018-12-09 15:10:33 · 642 阅读 · 0 评论 -
判断浏览器内核是否是IE8及其以下
var DEFAULT_VERSION = 8.0;var ua = navigator.userAgent.toLowerCase();var isIE = ua.indexOf("msie")>-1;var safariVersion;if(isIE){ safariVersion = ua.match(/msie ([\d.]+)/)[1];}if(s...原创 2018-11-19 14:31:54 · 2439 阅读 · 0 评论 -
原生js实现table列宽的鼠标拖动事件
var tTD; //用来存储当前更改宽度的Table Cell,避免快速移动鼠标的问题var table = document.getElementById("tableId"); //table的id名称for (j = 0; j < table.rows[0].cells.length; j++) { table.rows[0].cells[j].onmousedo...转载 2018-08-30 10:39:28 · 1841 阅读 · 0 评论 -
重写split 用于解决IE7,IE8,IE9的split的兼容性
//重写split 用于解决IE7,IE8,IE9的split的兼容性var split;split = split || function (undef) { var nativeSplit = String.prototype.split, compliantExecNpcg = /()??/.exec("")[1] === undef, self; ...原创 2018-05-30 17:29:43 · 2440 阅读 · 0 评论 -
转义HTML标签
function HTMLEncode(html) { var temp = document.createElement("div"); (temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html); var output = temp.innerHTML; temp = null; return...原创 2018-05-30 17:17:53 · 1343 阅读 · 0 评论