
js
文章平均质量分 51
梓喻
公众号IT民工日常求关注,我们有好多IT民工群,一起来划水呀~~~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vue2用elementUI做单选下拉树
摘要 本文介绍了一个基于Element UI的自定义树形选择组件实现方案。该组件通过组合el-input、el-popover和el-tree组件,实现了类似下拉树的功能,避免了使用级联选择器。主要特点包括:支持点击输入框或图标展开/收起树形菜单、可配置节点过滤功能、自定义节点渲染样式、点击外部区域关闭菜单等。组件通过v-model进行双向绑定,并提供了丰富的配置选项如禁用状态、占位文本、节点键名等。核心逻辑包括处理节点点击事件、设置当前选中值、同步显示标签等,为表单中需要树形选择但不想使用级联选择的场景提原创 2025-07-25 16:11:20 · 856 阅读 · 0 评论 -
修复echarts由4.x升级5.x出现地图报错echarts/map/js/china.js未找到
ECharts 5.x 地图数据缺失问题解决方案 升级到 ECharts 5.x 后,发现地图模块报错找不到中国地图文件,原因是新版本移除了内置地图 JSON 文件。解决方案有两种:1) 手动下载中国地图 JSON 文件并注册;2) 通过 npm 安装相关依赖包(如 echarts-china-provinces-pkg)后引入地图数据。两种方法都需要使用 registerMap 方法注册地图数据。文中提供了地图 JSON 文件下载链接和代码示例。原创 2025-07-21 19:22:34 · 325 阅读 · 0 评论 -
js设置屏幕缩放从而实现自适应
js监听浏览器尺寸做缩放适配大屏或者系统原创 2025-07-08 09:00:51 · 350 阅读 · 0 评论 -
iframe窗体默认白色背景去除
解决iframe加载时白色闪屏问题的方案 针对深色背景系统中iframe加载时出现白色闪屏的问题,文章提出以下解决方案: 设置iframe背景透明:通过CSS设置background-color: transparent 允许透明属性:在iframe标签添加allowtransparency="true" 加载时显示优化:使用visibility:hidden配合onload事件,待加载完成后再显示 最终方案同时应用以上三种方法,确保在不同环境下都能有效解决问题。原创 2025-06-24 23:43:49 · 455 阅读 · 0 评论 -
使用dompurify修复XSS跨站脚本缺陷
使用dompurify修复xss跨站脚本攻击漏洞。原创 2025-04-18 17:21:05 · 511 阅读 · 0 评论 -
命令行交互生成前端代码调试
通过控制台命令交互生成前端代码尝试。原创 2025-04-16 14:43:09 · 836 阅读 · 0 评论 -
前端文件下载方法(包含get和post)
前端文件下载方法(包含get和post)原创 2024-01-10 16:58:53 · 720 阅读 · 0 评论 -
修复The play() request was interrupted等系列问题
在网页端播放媒体,如video、audio等标签,在频繁切换组件播放时经常出现The play() request was interrupted等错误提示,可以延时执行修复该问题原创 2023-10-08 08:59:26 · 11955 阅读 · 5 评论 -
play() failed because the user didn‘t interact with the document优化媒体不能自动播放
谷歌浏览器 video 元素设置 autoplay,我们原意是希望页面加载时自动播放,但实际上并没有自动播放,在控制台报错如下:Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first.这里的意思是,是因为用户没有先和网页交互所以播放失败。原创 2023-09-14 22:07:59 · 35899 阅读 · 0 评论 -
BroadcastChannel方法跨浏览器窗口通信
BroadcastChannel可以使不同浏览器窗口,Tab 页,frame 或者 iframe 下的不同文档之间可以通过相互通信。原创 2023-09-14 10:04:53 · 617 阅读 · 0 评论 -
修复相同正则RegExp使用exec或者test交替返回true和false
新写一个正则,比如,在调用exec和test方法时交替返回true和false,乍一看还以为正则出了什么问题。原创 2023-03-16 19:46:03 · 297 阅读 · 0 评论 -
js实现剪切板复制拷贝的兼容方法
在某个工具类方法中定义该方法,兼容不同浏览器处理。原创 2023-03-03 18:09:13 · 1111 阅读 · 0 评论 -
js提取字符串中的地址或者域名
js提取字符串中的地址或者域名原创 2023-02-17 16:13:51 · 2508 阅读 · 0 评论 -
vue2关于EventBus使用
这一版主要讲EventBus在VUE2中的使用。原创 2022-07-30 17:43:36 · 1865 阅读 · 1 评论 -
简单的loading动画
loading加载动画原创 2022-06-02 09:58:06 · 454 阅读 · 0 评论 -
百度地图开发加载瓦片图片失败导致白块问题修复处理
1. 问题在用 百度地图 3.0 api开发时发现,地图有时候有些瓦片图片加载不出来,最后导致白块出现2. 问题排查通过代码调试,最后发现是使用 map.setMapStyle 方法后出现,于是去 百度地图api 查阅相关方法使用,目前所使用的 3.0 的api 中只找到了 setMapStyleV2 的使用方法.setMapStyleV2(config: Object) 返回值(none) 设置个性化地图,参数为个性化配置对象导致问题用法:map.setMapStyle(mapSty原创 2022-05-20 22:15:57 · 6291 阅读 · 0 评论 -
Node端爬取数据处理(http和https)
1. 安装 http 和 httpsnpm install http -Snpm install https =S2. 爬取数据处理const http = require('http');const https = require('https'); const getUrlData = async(url, type) => { let request = type === 'https' ? https : http; return new Promise((reso原创 2022-05-17 23:05:07 · 801 阅读 · 0 评论 -
js计算两个经纬度点之间距离
问题已知两个经纬度点,求两点之间距离代码// 计算两点之间直线距离const algorithm = (point1, point2)=> { let [x1, y1] = point1; let [x2, y2] = point2; let Lat1 = rad(x1); // 纬度 let Lat2 = rad(x2); let a = Lat1 - Lat2;// 两点纬度之差 let b = rad(y1) - rad(y2); // 经度之差原创 2022-05-10 14:08:26 · 6371 阅读 · 0 评论 -
js计算点到已知两点的直线距离(面积法/海伦公式)
问题已知两点(x1, y1) 和 (x2, y2),求某点(x, y) 到两点确定的直线的距离代码通过海伦公式+三角形面积公式求高,即点到已知两点距离function getPointToLineDistance2(list, point){ let [[x1, y1], [x2, y2]] = list; let [x, y] = point; let b = Math.sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));原创 2022-05-10 11:00:15 · 1375 阅读 · 0 评论 -
js点到两点确定的直线最短距离(点到直线方程)
问题已知两点(x1, y1) 和 (x2, y2),求某点(x, y) 到两点确定的直线的距离代码// 获取点到直线的距离function getPointToLineDistance(list, point){ let [[x1, y1], [x2, y2]] = list; let [x, y] = point; if(x1 === x2){ return Math.abs(x - x1); } else if(y1 === y2){原创 2022-05-09 16:38:17 · 1256 阅读 · 0 评论 -
visibilitychange关于浏览器选项卡切换事件
visibilitychange 事件说明visibilitychange 当其选项卡的内容变得可见或被隐藏时,会在文档上触发 visibilitychange (能见度更改)事件。具体使用document.addEventListener("visibilitychange", function() { if (document.visibilityState === 'visible') { // 浏览器选项卡可见 } else { // 浏览器选项卡不可见 }原创 2022-05-01 12:03:20 · 1010 阅读 · 0 评论 -
测试关于台风点是否在警戒线内
其实这文跟上文 js判断点在连续折线哪一侧 有关系,主要用来测试台风点是否在警戒线以内1. 先准备测试数据let arr1 = [ [104, 0], [106, 0], [105, -1], [105, 1], [104, -1], [106, 1], [112, 4.5], [114, 4.5], [113, 3.5], [113, 5.5], [114, 3.5], [111, 5.5], [118, 11], [120, 11], [119, 10], [119,原创 2022-04-30 18:11:07 · 651 阅读 · 0 评论 -
js判断点在连续折线哪一侧
其实这文跟上文 百度地图画24h和48h台风警戒线 有关系,主要用来判断台风点是否在警戒线以内1. 先判断点在两点坐标推导的直线哪一侧/**** @params { array } list 用来推导直线方法** @params { array } point 被用于判断在直线哪一侧的点** @description 判断点在线条左侧(小于0)还是右侧(大于0)*/function judgePointSideIn(list, point) { let [[x1, y1], [x2,原创 2022-04-30 17:53:06 · 885 阅读 · 0 评论 -
百度地图画24h和48h台风警戒线
首先,感谢 百度地图API1. 台风警戒线坐标// 警戒线坐标数据let earlyWarnLine = [{ key: 24, name: '小时警戒线', color: 'red', list: [ [105, 0], [113, 4.5], [119, 11], [119, 18], [127, 22], [127, 34] ]},{原创 2022-04-30 17:29:29 · 2887 阅读 · 0 评论 -
bootstrap模态框modal被遮罩层挡住问题处理
先从modal的配置中移除遮罩层<!-- 需要在外面的modal需要设置参数data-backgrop为false,这样就不会显示遮罩层了 --><div class="modal" id="topMenu-modal" tabindex="-1" role="dialog" data-backdrop="false"> <div class="modal-dialog" role="document"> <div class="m.原创 2022-03-18 12:08:15 · 4300 阅读 · 0 评论 -
js从url中获取参数
通过循环处理function getUrlParam(variable){ var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} }.原创 2022-03-17 23:46:11 · 982 阅读 · 0 评论 -
监听和移除鼠标滚动兼容写法
// creates a global "addWheelListener" method// example: addWheelListener( elem, function( e ) { console.log( e.deltaY ); e.preventDefault(); } );(function(window, document) { var prefix = ''; var _addEventListener; var _removeEventListener; // v原创 2021-11-10 14:12:01 · 882 阅读 · 0 评论 -
vue项目copy功能
export default { methods: { copy(value) { try{ const textarea = document.createElement('textarea'); document.body.appendChild(textarea); // 添加到body中 textarea.value = value; // 给dom设置值 textarea.select(); // 设置选中 const copyFalse = d原创 2021-10-29 09:57:16 · 367 阅读 · 0 评论 -
vue项目动态加载JSON并显示
1. 封装JSON请求方法1> 安装 axiosnpm install axios2> 引入并封装axios请求路径 src/utils/requestJSON.jsimport axios from 'axios';// create an axios instanceconst service = axios.create({ method: 'get', crossDomain: true, dataType: 'json', cache: false,原创 2021-10-08 15:54:27 · 3668 阅读 · 0 评论 -
vue项目动态设置浏览器icon
代码很简单,获取 <link> 标签中 rel 相关设置的值为 icon 的标签元素,将 icon 地址的值赋给该标签的属性 href。// 比如某个路径 browerIconUrldocument.querySelectAll("link[rel*='icon']").forEach(item => { item.href = browserIconUrl;})...原创 2021-09-28 12:09:31 · 1740 阅读 · 0 评论 -
vue-router处理刷新query参数消失问题
概念-路由对象属性$route.query 一个 key/value 对象,表示 URL 查询参数。$route.path 字符串,对应当前路由的路径$route.fullPath 完成解析后的 URL,包含查询参数和 hash 的完整路径。分析当浏览器刷新时,触发 导航守卫 beforeEach方法等,只有在 next(path: to.path) 时改变了路由参数解决方案将 next(path: to.path) 修改为 next(path: to.fullPath),这样就不会发生原创 2021-09-22 19:52:58 · 6084 阅读 · 5 评论 -
vue3.0新特性总结
Vue 3.0 终于在上2020-09-18发布了,使用了Typescript 进行了大规模的重构,带来了 Composition API RFC 版本,类似 React Hook 一样的写Vue,可以自定义自己的hook ,让使用者更加的灵活。vue 3.0 部分新特性。setup()ref()reactive()isRef()toRefs()computed()watch()LifeCycle Hooks(新的生命周期)Template refsglobalProperties转载 2021-09-16 12:04:11 · 794 阅读 · 0 评论 -
websocket/vue-socket.io/socket.io-client相关认识理解
前言因为项目需要在vue用到websocket所以找了很多帖子与资料,但是原生的需要封装逻辑比较复杂,对于仅仅是使用学习成本比较大,第三方插件的话我找的有vue-socket.io、socket.io、socket.io-client,其中vue-socket.io与socket.io我使用时都遇到个问题,就是全局组件挂载后没有找到io实例,找到了io实例与相关方法但是却无法使用,例如on方法,使用时无任何报错,但是控制台没打印后台传输的数据,而最后找到了socket.io-client直接挂载io实例使转载 2021-09-15 10:54:47 · 3301 阅读 · 0 评论 -
vue项目同路由名称的路径参数变化处理
场景vue项目路由的路径由参数变量组成,虽然切换路径,但页面并未发生变化import User from '@/components/User';const router = new VueRouter({ routes: [ // 动态路径参数 以冒号开头 { path: '/user/:userId', component: User } ]})vue-router官方解释提醒一下,当使用路由参数时,例如从 /user/foo导航到 /user/bar,原来的原创 2021-08-31 14:13:41 · 649 阅读 · 0 评论 -
Array.prototype.reduce用法
定义reduce() 方法对数组种的每个元素执行一个由您提供的 reducer (升序执行),将其接口汇总为单个返回值。语法arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])相关参数callback 执行数组种每个值(如果没有提供 initialValue 则第一个值除外), 包含四个参数:accumulator 累加器累计回调的返回值,是上一次调用回调时返回的累计值,或原创 2021-08-25 13:22:46 · 217 阅读 · 0 评论 -
require.context实现自动导入指定目录依赖(webpack前端工程化)
const modulesFiles = require.context('./modules', true, /\.js$/);// require.context accepts three params, search directory、whether search subdirectories and a regular expression to match files// you do not need `import app from './modules/app'`// it wi原创 2021-08-25 11:19:53 · 952 阅读 · 0 评论 -
TypeError: Cannot read property ‘range‘ of null(eslint-loader)
原因babel-eslint版本过高解决修改 package.json中指定babel-eslint版本,然后运行相关命令# 移除整个依赖rm -rf node_modules# 清空缓存npm cache clean# 安装依赖npm install# 再次清空缓存npm cache clean# npm cache clean -force 强制清空缓存或者# 移除指定依赖npm uninstall babel-eslint# 清空缓存npm cache cle.原创 2021-08-11 19:18:36 · 673 阅读 · 0 评论 -
Critical dependency: the request of a dependency is an expression(import)
定位到vue文件问题所在位置export default { created() { // 告警所在 import(`@/md/${file}`).then(moduleFile => { // }).catch(err => {}); }}原因webpack 版本问题,webpack4中动态import不支持变量方式解决办法用 require方法替代 importexport default { created() { // 告警所在 requ.原创 2021-08-11 19:08:38 · 4725 阅读 · 0 评论 -
TypeError: this.getOptions is not a function(html-loader)
在 vue 项目引入 md 文件 中安装了 html-loader 报错。原因当前项目安装的 html-loader版本过高,需要调整 html-loader版本解决办法先移除之前的版本npm uninstall html-loader安装较稳定版本npm i html-loader@1.3.0 --save...原创 2021-08-11 18:57:51 · 1420 阅读 · 0 评论 -
vue项目引入md文件
1. 安装相关依赖npm i html-loader markdown-loader --save需要注意的是,请安装一些稳定的版本,避免报错{ "html-loader": "^1.3.0", "markdown-loader": "^5.1.0"}2. 配置md文件解析规则vue.config.js 中增加配置加载md文件的规则,如果没有则在项目根目录下新建该配置。// All configuration item explanations can be find in // h原创 2021-08-11 18:30:43 · 2400 阅读 · 1 评论