![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
json-yc
程序员 软件工程师
展开
-
react hooks 基于 useContext 与 useReducer 跨组件通信的封装
react hooks 基于 useContext 与 useReducer 跨组件通信的封装, 实现数据全局修改与展示原创 2023-05-08 23:49:45 · 235 阅读 · 0 评论 -
强制下载链接 转流 实现在线预览
背景: 因为某些oss云服务器 返回的资源链接,直接浏览器去访问都是会强制 下载的,包括一些 浏览器可以打开的资源 也是 ,例如 pdf。思路:直接访问 就强制下载了,那我们就把数据抓下来 转流后再打开流来实现查看,核心代码const xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.responseType = 'blob'; xhr.onload = () =>原创 2022-01-18 11:33:17 · 1233 阅读 · 2 评论 -
js 跨域下载链接 下载文件 实现重命名,文件名称 兼容处理
背景: 标签的 download 跨域设置名称无效思路:下载链接按照 流 格式 下载下来 在组装,下载到本地的 流 就是同域了let downChangeName = (downUrl='',downFilename)=>{ if(!downUrl){ window.alert('请传入下载链接') return } let filename = ''; let url = downUrl ; let fileType = dow原创 2021-12-30 17:58:10 · 989 阅读 · 0 评论 -
原生 js 打印dom的 封装
// 设置打印样式function getStyle() { const styleContent = `#print-container { display: none;}@media print { body > :not(.print-container) { display: none; } html, body { display: block !important; } #print-cont原创 2021-08-17 14:38:31 · 164 阅读 · 0 评论 -
常见格式浏览器在线预览
const onlineViewFile = (url) => { if (url) { // 获取文件格式 const getFileFormatFun = (getFileFormatFunUrl) => { console.log(175555, getFileFormatFunUrl); const getInUrl = getFileFormatFunUrl; const urlArr = (getInUrl || '').sp.原创 2021-07-27 11:11:47 · 591 阅读 · 0 评论 -
微信 小程序 canvas 跟手绘制 组件
<view class="signCanvas"> <text bindtap="onOpenSignCanvas">打开 canvas </text> <view wx:if="{{isSignCanvasShow}}" class="signCanvas-shade-box"> <view class="signCanvas-shade"> <view class="canvas-box"> ...原创 2021-06-17 23:16:57 · 182 阅读 · 0 评论 -
浏览器 全屏 方法
// 全屏 方法function inFullScreen(element) { const ele = element; if (ele.requestFullscreen) { ele.requestFullscreen(); } else if (ele.mozRequestFullScreen) { ele.mozRequestFullScreen(); } else if (ele.webkitRequestFullscreen) { ele.webk.原创 2021-05-27 12:13:08 · 133 阅读 · 0 评论 -
基于 canvas.getImageDat 的矩形分区算法。
var canvas20210510 = document.getElementById('canvas20210510')var canvas202105102D = document.getElementById('canvas20210510').getContext("2d")const canvas20210510getImageData = canvas202105102D.getImageData(0, 0, canvas20210510.width, canvas20210510.he.原创 2021-05-14 11:38:21 · 109 阅读 · 0 评论 -
常用工具函数分享
const utils = { /** * yc * 全链路url转对象 * @param {*} allUrl */ allUrlToObj(allUrl) { let obj = {} if (allUrl.includes('?')) { let allUrlArr = [] allUrlArr = allUrl.split('?') ...原创 2021-02-02 15:35:25 · 45 阅读 · 0 评论 -
递归全匹配 菜单数组 筛选
// const filterByMenuDate = (data, keyWord) =>{ // console.log(888888888888,data,keyWord) // let returnArr = data.map((item) => { // if ((item.name && item.name.includes(keyWord)) ||filterByMenuDate(item.children || [], keyWo..原创 2020-09-16 16:11:59 · 290 阅读 · 0 评论 -
高德地图 amap-js 获取定位 import 方式
在网上找了很多 高德 获取 定位的方法 大多是在html 引入<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script> ---------cdn的方式 ,但是现在的项目大都是npm 引包开发 使用cdn 有些不规范,有些 还会报红。 所以 结合以下几个文档,实现 npm import 方式封装函数 避免踩坑...原创 2020-07-18 09:44:41 · 1745 阅读 · 0 评论 -
笔试题 多维数组 扁平化去重
et arr = [1,2,3,[5,6,[5,9,9,[5,5,6]]],5,[5,1]]let strArr = arr.toString().split(",")console.log(1911111,strArr)console.log(1911111,[...new Set(strArr)])原创 2020-07-14 14:58:05 · 136 阅读 · 0 评论 -
基于 crypto-js 加密解密 的封装
看了网上各位大佬的 加解密 实现 有些复杂(可能涉及到高阶应用) 鄙人就只是想实现字符串的加密解密,就简单地做了如下封装先 npm i -scrypto-js找一个文件 放封装的代码 将其导出import CryptoJS from 'crypto-js'export default class Encryption { //秘钥 lockKey: any; constructor(key) { this.lockKey = key ...原创 2020-07-08 16:32:23 · 632 阅读 · 0 评论 -
js 判断一个字符串内 是否包含 指定字符串 正则
str.indexOf('指定字符串',检索位子 为Num 可不传) 返回值为找到的内容出现的位置search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。str.search(regexp) 返回第一个与 regexp 相匹配的子串的起始位置。regexp可为字符串,可为正则表达式indexOf 与 search 区别 就是 indexOf 只能检索字符串 search 不仅可以检索字符串 还可以 匹配 正则...原创 2020-07-04 16:04:05 · 9131 阅读 · 0 评论