JavaScript
心知向之
机场路
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Vue之请求后台POST接口时将参数拼接在url后边传递的两种调用方式
问题还原:项目中实现一个功能时,后台接口是需要三个字符串的POST接口,前台调用时参数需要跟在url后边,如何调用那?后台接口代码如下:@RequestMapping(value = "/***.do",method = RequestMethod.POST)@ResponseBodypublic HttpResult copy(String id, name, String other) throws Exception { return HttpResult.SUCCESS(***);原创 2022-03-10 20:05:17 · 14243 阅读 · 1 评论 -
window.open(url)弹出新窗口被浏览器拦截了
问题还原:在项目中,处理同事写的导出Excel时,共有三个模块的数据需要导出到Excel。于是乎同事写了个通用的接口,在js中分三次用window.open(url)调用。于是就出现了个bug,弹窗被浏览器拦截了,只能下载第一个Excel。那如何阻止浏览器拦截那?解决方案:解决方案挺多,为了方便,本人采用的是通过setTimeout延迟来实现。代码如下:setTimeout(window.open(url), 500);注:这里的时间不能设置太短,否则也会被浏览器拦截。PS:欢迎大家点赞、关注、原创 2022-02-10 18:23:36 · 958 阅读 · 0 评论 -
连续点击按钮,通过设置按钮的样式防止用户多次操作
问题还原:在项目中的某个功能中,用户填写信息后,点击【提交】按钮,由于代码中设置的提示显示2s后才进行界面刷新、跳转,导致用户可能会多次点击【提交】按钮,所以如何防止用户的多次操作那?解决方案:此处通过CSS的pointer-events: none实现,这个属性是用于设置元素不对指针事件做出反应,然后在点击【提交】按钮,数据校验通过后,通过id获取DOM后通过addClass增加样式。代码如下:CSS代码如下:<style>/* 按钮不对指针事件做出反应 */.button-di原创 2022-01-22 16:00:27 · 737 阅读 · 0 评论 -
JS通过getElementsByTagName获取的DOM节点不是数组,是HTMLConnection。HTMLConnection转换成数组
问题还原:JS中通过document. getElementsByTagName(“比如div、a等”)获取到的所有相关DOM节点,获取到的是HTMLConnection,而不是数组。如何转成数组那?解决方案:通过**Array.prototype.slice.call()**来进行转换。代码如下:const divNodes = document.getElementsByTagName(div)// 获取的是HTMLConnection if (divNodes) {原创 2022-01-22 15:57:19 · 659 阅读 · 0 评论 -
JS提取字符串中的数字
问题还原:利用XLSX插件中的XLSX.utils.sheet_to_html()方法将从后台接收到的Excel转成HTML后,由于没有样式,所以通过id、tagName获取对应的td节点后,根据生成的td的id中的Excel行数,来判断添加何种样式。默认生成的id是类似于sjs-A1、sjs-A2……的字符串。解决方案:通过JS正则提取字符串中的数字,示例代码如下:var str = 'sjs-A1'var strNum = str.replace(/[^0-9]/ig, '')得到的str原创 2022-01-22 15:51:22 · 1530 阅读 · 0 评论 -
DOM节点添加样式
**问题还原:**利用XLSX插件中的XLSX.utils.sheet_to_html()方法将从后台接收到的Excel转成HTML后,由于没有样式,所以通过id、tagName获取对应的td节点后,根据行数增加对应的CSS样式。解决方案:获取到DOM节点后,遍历时,使用element.classList.add(‘myClass’)添加样式。使用element.classList.remove(‘myClass’)删除样式。其他JS自带实现方式后期使用时再补充。注:myClass是写好的cs原创 2022-01-22 15:45:17 · 1981 阅读 · 0 评论
分享