当前位置: 首页 > 知识库问答 >
问题:

反应:将组件状态值复制到剪贴板,而不使用伪元素

郭彬郁
2023-03-14

在我的项目中,有一个用例:用户单击一个按钮,然后将一些数据复制到剪贴板,以进行下一步

复制的数据与单击的按钮相关,并以组件状态存储

我做了一些搜索,找到了以下可能的解决方案:

function copyToClipboard(text){
    var dummy = document.createElement("input");
    document.body.appendChild(dummy);
    dummy.setAttribute('value', text);
    dummy.select();
    document.execCommand("copy");
    document.body.removeChild(dummy);
}

在某种程度上,我们需要创建一个伪元素,将复制的数据设置为伪元素并选择该元素,然后执行执行命令(复制)方法。

是否有可能做到这一点,而不创建虚拟元素?我知道有一些反应插件关于剪贴板,但我只想使用香草javascript.谢谢

共有1个答案

裴和怡
2023-03-14

你的解决方案很有效。

如果要复制的值尚未在DOM上呈现,那么您的Document.create元素('输入')...方法是创建一个文档节点的好方法,该节点文档知道,但对用户来说是不可见的。一旦您使用. createElement(),您就可以调用执行命令()将值复制到剪贴板。

方法是由HTML5的文档公开的。这意味着文档在使用该方法之前必须了解您所针对的节点(这称为选择)。

但是,如果您想从dom上已经呈现的元素中复制文本(例如表单中的输入),您可以使用React的回调ref。这里有一个使用ref来做到这一点的好例子。它非常简单,所以使用库可能会过度使用。

 类似资料:
  • 我有一个联系我的部分,我有电子邮件ID,所以我希望当人们点击电子邮件ID的电子邮件ID被复制到他们的剪贴板。 这是密码 由于这是可重用组件的一部分,我使用了在单独文件中定义的和之类的东西,因此很容易重用。 我正在从一个看起来像这样的data.js文件中传递数据, 我传递的是电子邮件ID,这是我唯一想要复制的东西。 是样式化组件,如下所示 我怎样才能让它看起来像一个链接?可能是当人们将鼠标悬停在文本

  • 问题内容: 如何将BufferedImage存储到系统剪贴板中? 问题答案: 这是从这里获得的工作代码,已成功测试

  • 问题内容: 首先,关于SO将图像复制到python中的剪贴板的问题导致答案用PIL和win32clipboard将图像写入python中的Windows剪贴板?,这仅对Python 2.x有用。-我尝试过,但是没有用。我克服了一个问题:Python 3.0中没有StringIO和cStringIO模块 ,但是碰到了另一个: 因此,对于Python 3再次提出相同的问题-如何在Python 3中将图

  • 问题内容: 我正在寻找一个如何将文本复制到iOS剪贴板的干净示例,然后可以在其他应用程序中使用/粘贴该文本。 此功能的优点是可以快速复制文本,而无需传统文本复制的标准文本突出显示功能。 我假设键类在其中,但是在它们提供的代码示例中找不到相关的区域。 问题答案: 如果您只需要纯文本,则可以使用属性。它既可读又可写: (从剪贴板中 读取数据时 ,UIPasteboard文档还建议您首先检查一下,“以避

  • 我想要复制到Vaadin14中的剪贴板组件,否则我该如何准备呢? 我想在Vaadin中编程一个按钮,该按钮复制特定Vaadin小部件的文本内容,例如TextField,将该文本放置到操作系统的剪贴板上,以便用户稍后可以将该文本粘贴到其他地方,可能是在另一个应用程序中

  • 2.如果用户在excel表格中复制,则应易于复制,即使用户试图在记事本中复制,也应以表格格式打印。 3.添加一些元数据到剪贴板,以确定pojo何时我们将再次导入表。 为了将pojo列表转换为表格格式,我使用了jtable,但无法将所有jtable内容导出到剪贴板。 --pojo.java 当我试图将字符串值复制到剪贴板时,它是工作的,但当我试图复制pojo时,它是不工作的。