问题标签 [html5-clipboard-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2928 浏览

jekyll - Jekyll 代码片段复制到剪贴板按钮

问题

我正在构建一个以minima为主题的 Jekyll 网站,以在线发布一些教程。教程页面包含许多代码片段,例如:

我想为每个代码片段(示例)添加一个“复制到剪贴板”按钮,但不确定在 Jekyll 中执行此操作的正确方法是什么。

我试过什么

  • 使用clipboardjs.com。每个片段都需要一个唯一的 ID,我不确定如何在 Jekyll/Markdown 中实现它。
  • STFW

我的问题

如何在 Jekyll 中为代码片段添加“复制到剪贴板”按钮?

0 投票
1 回答
1135 浏览

google-chrome-extension - 如何在 chrome 扩展的弹出窗口中提示用户提供剪贴板读取权限?

我正在构建我的第一个 Google Chrome 扩展程序,并希望创建可以读取和写入系统剪贴板的东西。我目前将所有 js 放在由 popup.html 为扩展导入的脚本中。

我也有在manifest.jsonforclipboard-readclipboard-write.

我能够将数据写入剪贴板,但无法从中读取。

我有一个buttonpopup.html那个有一个id和在 js 我通过 id 获取元素并添加一个事件监听器点击触发一个名为 paste 的函数,该函数又调用navigator.clipboard.readText(). 据我了解,这应该提示许可,但它没有做任何事情。

您知道readText从调用是否可以popup.html吗?如果是这样,如何让提示出现?提前致谢!

0 投票
1 回答
234 浏览

javascript - 事件侦听器“复制”不适用于“复制链接地址”

我想修改剪贴板,使其成为正则表达式匹配。这有效 - 只要我使用 Ctrl+C 或只是“复制”。如果我单击“复制链接地址”(或“复制链接位置”),事件侦听器似乎根本看不到复制的内容。这是屏幕录像:https ://i.stack.imgur.com/L4bQD.gif

我究竟做错了什么?

0 投票
3 回答
2715 浏览

typescript - 如何修复“找不到名称'ClipboardItem'”错误?

得到错误

错误 TS2304:找不到名称“ClipboardItem”

尝试创建ClipboardItemfor时navigator.clipboard.write()

我正在使用 Angular 6。我需要添加任何依赖项,还是有任何其他方法?

0 投票
0 回答
458 浏览

javascript - 从 Google Apps 脚本 Web 应用程序使用剪贴板 API

我有一个简单的 Web 应用程序(使用 HtmlService 用 Google Apps 脚本编写)当用户单击按钮时,它曾经将剪贴板上的任何文本“粘贴”到输入字段。在某些 Chrome 版本之前效果很好(我猜是 83 版)

单击按钮后检查控制台时,出现此错误:

一些研究让我进入了这个页面: https ://developers.google.com/web/updates/2018/06/feature-policy#using

但是,我不知道如何在 Google Apps Script HTMLService 上设置“HTTP 标头”。似乎我无法在 iFrame 上设置“允许”属性……有人吗?

0 投票
2 回答
309 浏览

javascript - 如何在剪贴板单击和复制时正确呈现成功消息

我正在创建一个调色板,其中每个颜色旁边的工具提示组件中有一个剪贴板图标。单击它会将颜色的名称复制到用户的剪贴板上。发生这种情况时,工具提示的消息应该从“复制”变为“复制成功”。我在尝试为每种颜色单独显示成功消息时遇到问题。

0 投票
0 回答
142 浏览

javascript - JS:不能对将被最小化或置于后台的页面使用异步剪贴板 API

例子:

如果用户打开了不同的应用程序或浏览器窗口/选项卡,此页面将DOMException: Document is not focused.每秒抛出一个错误。

我正在尝试制作一个监视我的剪贴板的页面。当我使用不同的程序时,我希望能够在我的第二台显示器上保持页面打开(我将从该程序复制文本,因此剪贴板监控)。

但是,如果浏览器将在后台运行,似乎无法使用剪贴板 API。

请注意,该示例可以在任何基于 Chromium 的浏览器中运行,所有这些浏览器都允许逐页授予剪贴板读取权限。(在 Firefox 中,只有扩展程序可以使用此剪贴板 API。)

有什么解决方法吗?我在使用document.execCommand("paste")相同的目标时也遇到了麻烦。

0 投票
0 回答
284 浏览

javascript - 剪贴板 API 在点击事件中与 Axios 配合使用

TL;博士

即使writeText()是用户事件的直接结果,是否可以让剪贴板 API 从 Safari 中的 Axios 获取请求的结果中写入文本?


长版

我有一个异步按钮单击事件,在该单击事件中,我使用 Axios 来获取另一个页面的 HTML。我想获取该字符串并使用剪贴板 API 将其保存到剪贴板。

这在 Chrome 和 Firefox 中有效,但在 Safari 中存在一些问题,我将在下面展示。

测试:

  • 铬 88.0.4324.192
  • 火狐 78.7.1
  • Safari 14.0.3

我能找到的与这类事情相关的最接近的 SO 问题是Javascript / Clipboard API / Safari iOS / NotAllowedError Message但我觉得我的 Clipboard API 调用是直接在用户事件中调用的。


尝试 1 在 Safari 中工作

Safari 中的结果 1

  • 请求成功
  • 无法写入剪贴板
    • NotAllowedError:当前上下文中用户代理或平台不允许该请求,可能是因为用户拒绝了权限。

我对结果 1 的看法

当时我想这会奏效。该writeText()调用是用户事件的直接结果,我只是传入一个字符串......即使该字符串是 Axios 获取请求的结果。当它不起作用时,我认为 get 请求一定有什么东西会抛出权限。


尝试 2 在 Safari 中工作

Safari 中的结果 2

  • 请求成功
  • 无法写入剪贴板
    • NotAllowedError:当前上下文中用户代理或平台不允许该请求,可能是因为用户拒绝了权限。

我对结果 2 的看法

当我的随机文本没有复制时,我真的很惊讶。当尝试 #1 失败时,我决定保留 get 请求,但只是提供writeText()一些随机文本,无论如何都与 get 请求无关,只是为了看看它是否会复制。显然,get 请求仍在影响 Clipboard API。


尝试 3 开始在 Safari 中工作

Safari 中的结果 3

  • 文本已成功复制到剪贴板

我对结果 3 的看法

好吧,我很高兴我可以在 Safari 中使用剪贴板 API 成功复制文本。但是我真的很想复制获取请求的结果。

0 投票
0 回答
22 浏览

javascript - JS - 无需用户操作即可复制到剪贴板

我正在制作一个非常简单的小页面,用于prompt从用户那里获取数字输入,然后使用它将某些数据复制到剪贴板。但是,异步剪贴板 API 不允许这样做,因为它“不是用户触发的”,execCommany("copy")为了简单起见,我希望避免这样做(因为它需要页面上的元素)。是否有可能做到这一点?窗口能否prompt被正确识别为用户输入并被允许?