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();
    }
};

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习复习(6)——numpy的数学操作

加减法运算 # 创建两个不同的数组 a np.arange(4) #list(0,1,2,3 b np.array([5,10,15,20]) # 两个数组做减法运算 b-a 运行结果&#xff1a; 计算数组的平方 #b*2代表数组b每个元素乘以2 #b**2代表数组b每个元素的2次方 b**2 运行结果&#xff1a; 计算数组的正弦值 #…

简单高效 Learn LaTeX 013 - LaTex FloatingBody Tables (44 mins) 浮动体表格

浮动体是LaTex中的一个重要概念&#xff0c;这个视频演示了以浮动体为载体的表格的排版应用。 https://www.douyin.com/user/self?modal_id7305874487138913574&showTabpost

机器学习的精髓-梯度下降算法

目 1. 梯度下降算法2. 梯度下降求解3. 总结 1. 梯度下降算法 梯度下降算法是一种优化算法&#xff0c;用于最小化函数的数值方法。它通过沿着函数梯度的反方向来更新参数&#xff0c;以逐步减小函数值。这一过程重复进行直到达到收敛条件。梯度下降算法有多种变体&#xff0c;…

02、全文检索 ------ Solr(企业级的开源的搜索引擎) 的下载、安装、Solr的Web图形界面介绍

目录 Solr 的下载和安装Solr的优势&#xff1a;Lucene与Solr 安装 Solr1、下载解压2、添加环境变量3、启动 Solr Solr 所支持的子命令&#xff1a;Solr 的 Core 和 Collection 介绍Solr 的Web控制台DashBoard&#xff08;仪表盘&#xff09;Logging&#xff08;日志&#xff09…

vscode 插件 Tailwind CSS IntelliSense 解决 class 提示问题

问题描述&#xff1a; 如下写js字符串是没有class智能提示的&#xff1a; const clsName bg-[#123456] text-[#654321] return <div className{clsName}></div>解决方案&#xff1a; 安装 clsx 依赖 pnpm i clsx设置 vscode 的 settings.json {"tailwin…

150基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数

基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数&#xff0c;根据其原理输出推程和回程的最大压力角、最小曲率半径等相关结果。程序已调通&#xff0c;可直接运行。 150 凸轮轮廓的设计 结构的最优化参数 (xiaohongshu.com)

外星人入侵(python)

前言 代码来源《python编程从入门到实践》Eric Matthes 署 袁国忠 译 使用软件&#xff1a;PyCharm Community Editor 2022 目的&#xff1a;记录一下按照书上敲的代码 alien_invasion.py 游戏的一些初始化设置&#xff0c;界面的大小&#xff0c;标题 import sys import …

spring boot 项目中的异常处理

出现异常&#xff1a; 怎样定义全局异常处理器 新建一个类&#xff0c;加上注释两个 ControllerAdvice(basePackages"com.example.controller") public class GlobalExceptionHandler {private static final Log log LogFactory.get();//统一异常处理ExceptionHandl…

SOLIDWORKS Simulation 2024增强新功能

SOLIDWORKS 2024 新功能前瞻| SOLIDWORKS Simulation 功能增强 • 性能增强功能 • 壳体的接合交互 • 网格性能 • 欠约束实体检测 • 增强型轴承接头 • 收敛检查图解 • 去耦合混合自由体模式 • 复制算例时排除网格和结果 • 新增在网格化后及分析完成后自动保存模…

【Tomcat与网络10】Tomcat I/O和线程池的并发调优

前面我们看了提高Tomcat启动速度的措施&#xff0c;这里我们看一下如何提高Tomcat的性能。 Tomcat 的调优涉及 I/O 模型和线程池调优、JVM 内存调优以及网络优化等&#xff0c;今天我们来聊聊 I/O 模型和线程池调优&#xff0c;由于 Web 应用程序跑在 Tomcat 的工作线程中&…

给定n个结点的树,u,v两个结点可以配对当且仅当u不是v的祖先且v不是u的祖先,每个结点最多与一个结点配对,求最大配对个数

题目 思路: #include <bits/stdc++.h> using namespace std; #define int long long typedef long long ll; #define pb push_back #define lson p << 1 #define rson p << 1 | 1 #define fi first #define se second const int maxn = 1e6 + 5, maxm = 5e…

【破事水】Java Gradle 无法引入同名不同版本的两个包

此问题水于 2024 年 01 月&#xff0c;假如后面 gradle 出了什么好方法能解决这个问题&#xff0c;家祭无忘告乃翁&#xff0c;提前谢过看到这篇的各位大佬了。 结论 先说结论&#xff0c;Java 因为包名定义等原因&#xff0c;对同名包在编译时只能编译一个版本&#xff0c;具…

Linux 内核学习1. 编译并启动一个最小化系统

Linux 内核学习1. 编译并启动一个最小化系统 一、Linux内核简介1. Linux 内核介绍2. Linux内核主要的作用 二、编译内核主要的步骤三、编译过程1. 准备环境2. 安装编译工具和依赖项3. 下载源码4. 配置内核配置功能选项命令行配置图形化配置默认配置 5. 编译内核6. 构建轻量化工…

有什么办法保护网站安全

随着互联网的快速发展&#xff0c;随着品牌效应的加大&#xff0c;企业网站已经成为了企业对外展示的明信片&#xff0c;以及宣传获取私有流量的重要渠道&#xff0c;网站的安全性也越来越受到用户的重视&#xff0c;保护网站安全是运维人员非常重要的任务。德迅云安全深耕网络…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)

1.QSet: toList 中的toList 函数已不存在&#xff0c;遇到xx->toList改成直接用&#xff0c;如下&#xff1a; 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…

Node.js Express 框架 2024版 笔记

1.0 操作命令 Node.js express 框架 https://www.expressjs.com.cn/ npm install -g express-generator expressexpress --pug --git // --pug 添加对 pug 模板引擎的支持 // --git 添加 .gitignore 代码仓库排除 //无法直接安装新版pug模板 npm i npm …

SqueezeNet模型详解

简介 SqueezeNet是一种轻量级卷积神经网络架构&#xff0c;旨在保持较高性能的同时减少模型的参数数量和计算复杂度。由于其小尺寸和高效性能&#xff0c;SqueezeNet适用于在资源受限的环境中部署&#xff0c;如移动设备和嵌入式系统。 SqueezeNet是通过使用一种"Fire M…

AI的安全应答之道

作者&#xff1a;统信UOS技术团队 2023,随着各种大语言模型的爆发&#xff0c;整个AI生态正处于从决策式AI进化到生成式AI的进程中。各类AI模型和AI应用层出不穷&#xff0c;也随之带来了与AI相关的各类潜在风险。AI开发和使用过程中的风险防范和治理&#xff0c;成为了不可忽…

神经网络的一些常规概念

epoch&#xff1a;是指所有样本数据在神经网络训练一次&#xff08;单次epoch(全部训练样本/batchsize)/iteration1&#xff09;或者&#xff08;1个epochiteration数 batchsize数&#xff09; batch-size&#xff1a;顾名思义就是批次大小&#xff0c;也就是一次训练选取的样…

力扣hot100 前 K 个高频元素 小根堆 流 IntStream

Problem: 347. 前 K 个高频元素 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 小根堆&#xff08;维护k个高频元素&#xff09;遍历所有元素&#xff0c;当前堆大小 < k 或者 当前元素出现次数大于堆顶元素出现次数&#xff1a;替换掉堆顶元素 复杂…