1.前言

本节讲述如何封装一个操作粘贴板的方法

  • 原理:选中某个Dom元素(比如文本域),执行区域复制命令即可。
  • 相关API:document.execCommand():该方法允许运行命令来操纵可编辑内容区域的元素。传入"Copy"参数表示拷贝当前选中内容到剪贴板。(启用这个功能的条件因浏览器不同而不同,而且不同时期,其启用条件也不尽相同。使用之前请检查浏览器兼容表,以确定是否可用。)

2.封装思路

  • (1)创建一个textarea元素,写入要拷贝的文本
  • (2)将该元素插入到Dom中
  • (3)选中该元素
  • (4)执行复制到粘贴版的命令
  • (5)移除该元素

3.代码实现

function copyUrl_oz(val){
//创建元素
var node_textarea = document.createElement('textarea')
//隐藏该元素
node_textarea.style.opacity = 0
//写入元素内容(要复制的文本)
node_textarea.value = val
//将元素加入Dom中
document.body.appendChild(node_textarea)
//选中该元素
node_textarea.select()
//复制以选中元素的内容到粘贴板
document.execCommand("Copy")
//复制完毕,移除该元素
document.body.removeChild(node_textarea)
}

在PC端中,测试了Chrome/火狐/edge/IE11浏览器都没问题

在手机端,测试了IOS13种的Chrome/火狐/edge浏览器,也没问题

Javascript 粘贴板的更多相关文章

  1. JavaScript设置粘贴板

    设置复制 document.body.oncopy = function(){ alert('不许复制'); return false; }; 设置粘贴 document.getElementById ...

  2. javascript网页复制功能-复制到粘贴板-兼容多数浏览器(不使用flash)

    使用方法:clipBordCopy("hello Copy");//执行后复制hello Copy到粘贴板 通过 var result = clipBordCopy("h ...

  3. 如何使用JavaScript直接上传并预览粘贴板的图片?

    (题图:梵高-橄榄树) 提出需求 因为工作原因,现在有一个需求就是需要用户使用QQ或者微信复制一张截图后,在div中直接粘贴这张图片,而不是采用上传的方式.类似我们在使用QQ微信时直接粘贴截图的操作, ...

  4. 转JS--通过按钮直接把input或者textarea里的值复制到粘贴板里

    document.activeElement属性为HTML 5中新增的document对象的一个属性,该属性用于返回光标所在元素.当光标未落在页面中任何元素内时,属性值返回body元素. setSel ...

  5. clipboardjs复制到粘贴板

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

  6. IE中操作粘贴板复制和粘贴

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. zeroclipboard实现多浏览器复制到粘贴板功能

    zeroclipboard实现多浏览器复制到粘贴板功能(单个复制按钮和多个复制按钮) 为了更好的用户体验,现在很多网站中文本框的内容只需要点击复制按钮这样就能把内容复制到粘贴板了:出于兼容性的考虑,基 ...

  8. js 实现复制到粘贴板功能

    前言:js 或者 jquery 都可以实现的复制到粘贴板功能,有时还想要有换行等格式(同 textarea) 网站地址:我的个人vue+element ui demo网站 github地址:yuleG ...

  9. js实现粘贴板复制

    <a href = '#' onclick ='javascript:window.clipboardData.setData('text','${form.param}');alert('クリ ...

  10. js 复制文字、 复制链接到粘贴板

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. MDC – Get Started

    前言 Angular Material 为了更好的和 Material Design 保持一致, 放弃了自己开发, 改而使用 wrapping MDC 的方式来维护 Angular Material. ...

  2. linux java 初始环境配置

    linux初始环境配置 1.设置IP 查看虚拟机ip地址:ip addr 修改ip地址 Vi /etc/sysconfig/network~scrips/ifcfg-ens33(不一定是33 动态的) ...

  3. SublimeText配置Markdown编辑及预览

    概述 本文详细介绍了如何配置Sublime Text及相关插件,使之成为Markdown编辑器并且能够在浏览器中实现预览功能. 所需工具 Sublime Text + Package Control ...

  4. excel江湖异闻录--◆K

    网名◆K,按照群里同学的说法,K神和老大kluas,以及一个名为KKK的VBA强人,都是K字头家族的高手. 因为函数实力极强,时常碾压难题,被群里同学们冠以了"K神"的称号. 用笔 ...

  5. unable to find sdk 'iphoneos XX' 报错

    解决方法: Build Setting->Base SDK->修改为iOS

  6. CocoaPods常用的命令行以及安装方法

    1.新建一个Xcode工程,使用终端cd到工程目录下 2.创建Podfile文件 pod init ,之后就可以在项目目录里看到一个Podfile文件 3.打开Podfile文件:open Podfi ...

  7. dotnet 泛型委托 ACTION FUNC

    void Main() { // 泛型委托 ACTION FUNC // 3. 创建委托实例 TestDele<string> testDele = new TestDele<str ...

  8. C# 的运算符和作用域

    // C# 运算符 // 表达式 表达式有操作数(operand)和运算符(operator)构成: // 常见的运算符 + - * / 和 new // x ?? y 如果x为null, 则计算机过 ...

  9. mongo对文档中数组进行过滤的三种方法

    前言 在mongo中数据类型有很多种,常见的包括: 数据类型 例子 描述 String { "x" : "foot" } 字符串.存储数据常用的数据类型.在 M ...

  10. 云原生周刊:Prometheus 3.0 Beta 发布|2024.09.16

    开源项目推荐 Kuma Kuma 是一个现代化的基于 Envoy 的服务网格,能够在每个云平台上运行,支持单区域或多区域部署,兼容 Kubernetes 和虚拟机.凭借其广泛的通用工作负载支持,以及对 ...