问题标签 [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.
jekyll - Jekyll 代码片段复制到剪贴板按钮
问题
我正在构建一个以minima为主题的 Jekyll 网站,以在线发布一些教程。教程页面包含许多代码片段,例如:
我想为每个代码片段(示例)添加一个“复制到剪贴板”按钮,但不确定在 Jekyll 中执行此操作的正确方法是什么。
我试过什么
- 使用clipboardjs.com。每个片段都需要一个唯一的 ID,我不确定如何在 Jekyll/Markdown 中实现它。
- STFW
我的问题
如何在 Jekyll 中为代码片段添加“复制到剪贴板”按钮?
google-chrome-extension - 如何在 chrome 扩展的弹出窗口中提示用户提供剪贴板读取权限?
我正在构建我的第一个 Google Chrome 扩展程序,并希望创建可以读取和写入系统剪贴板的东西。我目前将所有 js 放在由 popup.html 为扩展导入的脚本中。
我也有在manifest.json
forclipboard-read
和clipboard-write
.
我能够将数据写入剪贴板,但无法从中读取。
我有一个button
在popup.html
那个有一个id
和在 js 我通过 id 获取元素并添加一个事件监听器点击触发一个名为 paste 的函数,该函数又调用navigator.clipboard.readText()
. 据我了解,这应该提示许可,但它没有做任何事情。
您知道readText
从调用是否可以popup.html
吗?如果是这样,如何让提示出现?提前致谢!
javascript - 事件侦听器“复制”不适用于“复制链接地址”
我想修改剪贴板,使其成为正则表达式匹配。这有效 - 只要我使用 Ctrl+C 或只是“复制”。如果我单击“复制链接地址”(或“复制链接位置”),事件侦听器似乎根本看不到复制的内容。这是屏幕录像:https ://i.stack.imgur.com/L4bQD.gif
我究竟做错了什么?
typescript - 如何修复“找不到名称'ClipboardItem'”错误?
得到错误
错误 TS2304:找不到名称“ClipboardItem”
尝试创建ClipboardItem
for时navigator.clipboard.write()
。
我正在使用 Angular 6。我需要添加任何依赖项,还是有任何其他方法?
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 上设置“允许”属性……有人吗?
javascript - 如何在剪贴板单击和复制时正确呈现成功消息
我正在创建一个调色板,其中每个颜色旁边的工具提示组件中有一个剪贴板图标。单击它会将颜色的名称复制到用户的剪贴板上。发生这种情况时,工具提示的消息应该从“复制”变为“复制成功”。我在尝试为每种颜色单独显示成功消息时遇到问题。
javascript - JS:不能对将被最小化或置于后台的页面使用异步剪贴板 API
例子:
如果用户打开了不同的应用程序或浏览器窗口/选项卡,此页面将DOMException: Document is not focused.
每秒抛出一个错误。
我正在尝试制作一个监视我的剪贴板的页面。当我使用不同的程序时,我希望能够在我的第二台显示器上保持页面打开(我将从该程序复制文本,因此剪贴板监控)。
但是,如果浏览器将在后台运行,似乎无法使用剪贴板 API。
请注意,该示例可以在任何基于 Chromium 的浏览器中运行,所有这些浏览器都允许逐页授予剪贴板读取权限。(在 Firefox 中,只有扩展程序可以使用此剪贴板 API。)
有什么解决方法吗?我在使用document.execCommand("paste")
相同的目标时也遇到了麻烦。
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 成功复制文本。但是我真的很想复制获取请求的结果。
javascript - JS - 无需用户操作即可复制到剪贴板
我正在制作一个非常简单的小页面,用于prompt
从用户那里获取数字输入,然后使用它将某些数据复制到剪贴板。但是,异步剪贴板 API 不允许这样做,因为它“不是用户触发的”,execCommany("copy")
为了简单起见,我希望避免这样做(因为它需要页面上的元素)。是否有可能做到这一点?窗口能否prompt
被正确识别为用户输入并被允许?