首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS或带图像的角度复制文本

问JS或带图像的角度复制文本
EN

Stack Overflow用户
提问于 2021-05-18 01:35:03
回答 1查看 111关注 0票数 0

我需要复制文本和图像在一次点击。我试过下面的代码。我只点击并粘贴了"clip_message“

我的HTML:

代码语言:javascript
复制
<button id="copy" onclick="writeClipImg()"><strong>Copy</strong></button>

我的JS代码

代码语言:javascript
复制
async function writeClipImg() {
  try {
    const imgURL = 'https://luanedcosta.github.io/copy-image-clipboard/static/media/SecondImage.ef100414.png';
    const data = await fetch(imgURL);
    const blob = await data.blob();
    const blob2 = new Blob(['clip_message'], {type: 'text/plain'});
    await navigator.clipboard.writeText('swe');
    await navigator.clipboard.write([
      new ClipboardItem({
            'text/plain': blob2,
        'image/png': blob
      })
    ]);
    
    console.log('Fetched image copied.');
  } catch(err) {
    console.error(err.name, err.message);
  }
}

实际上,我在JS中尝试过。如果我有角度的解决方案,那也是更好的。请帮助我在一次点击复制两个。谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-05-18 05:29:50

也许,我们不能在这段时间内同时复制图像和文本。

根据Clipboard.write()文档:

注意:一次只能传入一个剪贴板项目。

我试图将一个数组传递给cliboard.write方法,但它抛出了以下错误:

(索引):29未实现对多个ClipboardItems的NotAllowedError支持。

顺便说一句,你也可以检查这个例子。

​

代码语言:javascript
复制
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <button onclick="copy()">Copy Button</button>
  <script>
    async function copy(){
      try {
    const imgURL = 'https://luanedcosta.github.io/copy-image-clipboard/static/media/SecondImage.ef100414.png';
    const data = await fetch(imgURL);
    const blob = await data.blob();
    const blob2 = new Blob(['clip_message'], {type: 'text/plain'});
    // await navigator.clipboard.writeText('swe');
    await navigator.clipboard.write([
      new ClipboardItem({
           [blob.type]: blob
      }),
        new ClipboardItem({
            'text/plain': blob2
      })
    ]);
    
    console.log('Fetched image copied.');
  } catch(err) {
    console.error(err.name, err.message);
  }
    }
  </script>
</body>
</html>

​

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67574506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档