javascript - 使用 Javascript 在 Firefox 和 safari 中单击从剪贴板获取文本
问题描述
我正在寻找一种通过在 Firefox 和 Safari 中单击带有 Javascript 的按钮来从剪贴板粘贴文本的方法。
我为此编写了这段代码。
function paste() {
let pasteArea = document.querySelector("textarea");
pasteArea.value = "";
navigator.clipboard.readText().then((text) => {
pasteArea.value = text;
});
},
document.getElementById("btn").addEventListener("click", paste);
Chrome 可以使用它,但不适用于 safari 和 firefox,并且由于浏览器不支持它而出现错误;
Firefox; TypeError: navigator.clipboard.read is not a function
Safari; TypeError: undefined is not an object (evaluating 'navigator.clipboard.readText')
我也试过
document.execCommand('paste', false, null);
但由于浏览器支持,它们都不适用于其中任何一个。我也试过
event.clipboardData.getData("text/plain");
但不适用于点击事件,但它适用于我不想要的粘贴事件。
我想避免使用 Flush,并想用 CLICK 事件粘贴文本。可能吗?
解决方案
推荐阅读
- node.js - 需要 node.js 版本 10.13.0 或更高,但找到版本 8.12.0
- linux - bash set -x 非英文字符显示
- spring-boot - Spring Boot 2.4.4 升级后启动失败
- android - Flutter中如何将onTap函数传递给ListTile?
- android - 重命名在android中无法正常工作
- gitlab - 为什么 gitlab-ci.yml 无法识别 sonarqube -Dsonar 命令?
- macos - macOS SmartFolder 如何匹配 kMDItemKind 以了解文件是电影类型
- java - 线程“main”中的异常 java.lang.NoClassDefFoundError: scala/Product$class (Java)
- c# - 带有 GIF 图像的 Web 浏览器中的动画问题
- jquery - 如何生成带有垂直表格的pdf?