vue——实现多行粘贴到table事件——技能提升

最近在写后台管理系统时,遇到一个需求,就是要从excel表格中复制多行内容,然后粘贴到后台系统中的table表格中。
如下图所示:一次性复制三行内容,光标放在红框中的第一个框中,然后按ctrl+v粘贴事件,一次性粘贴三行内容。
在这里插入图片描述
下面讲解具体实现步骤:

解决步骤1:监听页面的鼠标按下事件,找到粘贴按键

mounted() {window.addEventListener('keydown', this.handleEvent);
},
methods:{async handleEvent(event) {switch (event.keyCode) {case 86://按键86就是粘贴事件this.getPaste();break;default:break;}},
}

解决步骤2:获取剪切板中的内容

var val = await navigator.clipboard.readText();
val.trim();

注意:这个方法只能是针对localhost+127.0.0.1+https://协议的网址,其他网址都会报错。

解决步骤3:根据换行符拆解剪切板内容

let arr = val.split('\r\n');
arr = arr.filter((a) => a);

此时arr中的内容就是多行复制的内容了,而且去除了空白内容和前后的空格。

剩下的步骤就是将拆分后的arr数组的内容赋值到指定行中了。

关于iframe嵌套后跨域实现交互的问题

我还遇到另一个需求,就是当前页面嵌入到另一个系统中,由于两个系统域名不一致,导致跨域后无法实现交互。

之前我遇到过同一个问题,解决方法如下:

postMessage——不同源的网页直接通过localStorage/sessionStorage/Cookies——技能提升:http://t.csdnimg.cn/4yQ0P

下面再次进行回顾并简单介绍使用步骤:

需求:要求子页面以弹窗的形式在父系统中展示,当点击子页面中的指定按钮时,能够触发父页面关闭弹窗。

这就是父子页面之间的交互了。由于跨域,所以此时需要通过window.postMessage的方法来处理。

解决步骤1:子页面中的写法

window.parent.postMessage('close', '*');

window.parent就是获取父页面,这句命令就是给父页面传递一个close的命令。

解决步骤2:父页面接收命令

子页面弹窗展示:mvc代码如下:
html部分

 <div id="bomWrapId" style="width:100%;height:100%;background:rgba(0,0,0,0.3);position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;"><div style="width:80%;height:80%;background:#fff;"><div style="display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #efefef;padding:10px 20px;"><h4>解析原始BOM</h4><span id="bomCloseId" style="padding:10px;cursor:pointer;">X</span></div><iframe allow="clipboard-read" id="originBomImportId" width="100%" height="100%" src=""></iframe></div>
</div>

js部分

//默认弹窗是关闭的
$('#bomWrapId').hide();
$('#bomCloseId').click(() => {$('#originBomImportId').attr('src', '');$('#bomWrapId').hide();location.reload();
})

通过$('#bomWrapId').show();来触发弹窗的打开

接收子页面传递过来的关闭命令

window.onmessage = (e) => {console.log(2222, e);if (e&&e.data == 'close') {$('#originBomImportId').attr('src', '');$('#bomWrapId').hide();location.reload();}
};

完成!!!多多积累,多多收获!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/448933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单实践 java spring boot 自动配置模拟

1.概要 1.1 需求&#xff0c;自己写一个redis-spring-boot-starter模拟自动配置 自动配置就是在引入*-starter坐标后&#xff0c;可以已经spring框架的规则实现一些Bean的自动注入&#xff0c;并设置一些参数的默认值&#xff0c;且也可以在引入的工程中修改这些配置的值。这…

FANUC机器人示教器的菜单变成了图标,如何改成列表的形式?

FANUC机器人示教器的菜单变成了图标&#xff0c;如何改成列表的形式&#xff1f; 如下图所示&#xff0c;开机后按下MENU菜单键时&#xff0c;发现原来的列表形式变成了菜单图标的形式&#xff0c;同时在按F1-F5键时&#xff0c;提示&#xff1a;HMI模式-键不可用&#xff0c; …

企业申请sectigo ip https证书

Sectigo&#xff08;原名Comodo&#xff0c;在整合https证书业务后改名为Sectigo&#xff09;是一家知名的数字证书提供商&#xff0c;拥有多种类型的数字证书&#xff0c;例如单域名https证书、多域名https证书、通配符https证书、IP https证书和代码签名证书等满足各类用户的…

使用VScode编译betaflight固件--基于ubuntu平台

使用VScode编译betaflight固件--基于ubuntu平台 1、使用git克隆betaflight的开源代码2、配置编译环境3、使用VScode编译代码 window平台的见上一篇文章 使用VScode编译betaflight固件–基于windows平台 本文主要介绍在linux系统 ubuntu平台下使用VScode编译betaflight固件的方法…

某宝 bx-pp参数 反编译wasm还原算法

声明: 本文章中所有内容仅供学习交流&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 前言: 听说最近某宝水果滑块出了一个bx-pp参数 是wasm加密,抱着好奇的心态打开的网…

TCP 连接掉线自动重连

文章目录 TCP 连接掉线自动重连定义使用连接效果 TCP 接收数据时防止掉线。TCP 连接掉线自动重连。多线程环境下TCP掉线自动重连。 欢迎讨论更好的方法&#xff01; TCP 连接掉线自动重连 定义 定义一个类&#xff0c;以编写TCP连接函数Connect()&#xff0c;并且&#xff1a…

MySQL原理(五)事务

一、介绍&#xff1a; 1、介绍&#xff1a; 在计算机术语中&#xff0c;事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务是恢复和并发控制的基本单位。 2、事务的4大特性 原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性…

比瓴科技入围软件供应链安全赛道!为关键信息基础设施安全建设注入新动力

1月20日&#xff0c;中关村华安关键信息基础设施安全保护联盟会员大会暨关键信息基础设施安全保护论坛在北京成功举办&#xff0c;比瓴科技作为会员单位受邀出席。 本次论坛发布了《关键信息基础设施安全保护支撑能力白皮书&#xff08;2023&#xff09;》&#xff0c;比瓴科技…

Jmeter直连mysql数据库教程

mysql数据库能够通过Navicat等远程连接工具连接 下载驱动并加入jmeter 1.mysql驱动下载地址&#xff1a;MySQL :: Download MySQL Connector/J (Archived Versions) 找到对应的驱动下载&#xff1a;如下图&#xff1a; 把驱动jar包加入jmeter 配置jmeter连接mysql数据库…

区间时间检索

前端 <el-col :md"6" v-if"advanced"><el-form-item :label"$t(inRecord.column.createTime)"><el-date-pickerstyle"width: 100%;"v-model"daterangeCreateTime"value-format"yyyy-MM-dd"type&qu…

【sentinel流量卫兵搭建与微服务整合】

sentinel流量卫兵搭建与微服务整合 搭建sentinel dashboard控制台微服务整合 搭建sentinel dashboard控制台 1、下载 官网链接 由于官网github网络原因&#xff0c;导致长时间下载失败。 网盘链接 网盘提取码&#xff1a;dwgj 2、运行 将下载jar包放在任意非中文、不包含特殊…

Java数组的遍历

目录 数组的遍历使用for循环遍历数组使用for-each循环遍历数组使用while循环和迭代器遍历数组使用Java 8的流API遍历数组 数组遍历的应用求数组中的最大值查询数组中指定位置的元素将查指定元素对应的索引的功能提取为方法添加数组元素删除数组元素 数组的遍历 Java数组的遍历…