javascript - 尝试以编程方式粘贴
问题描述
我在使用 execCommand('paste'); 时遇到问题;
我的代码:
var copy = document.createElement("BUTTON");
copy.innerText = "Copy";
Sections.contextmenu.appendChild(copy);
copy.addEventListener("click", function(e) {
document.execCommand("copy");
});
var paste = document.createElement("BUTTON");
Sections.contextmenu.appendChild(paste);
paste.innerText = "Paste";
paste.addEventListener("click", function(e) {
console.log("Paste");
if (document.execCommand("paste")) {
console.log("pasted");
}
});
复制工作开箱即用。我无法粘贴工作。我在控制台中看到“粘贴”,但没有粘贴任何内容。我读过一些东西说这个功能需要在 Firefox 中显式打开。有没有办法(除了使用闪存......这在我所做的研究中谈到)以编程方式在内容可编辑元素中执行“粘贴”?
解决方案
该paste
命令在 Web 内容中被禁用(它仅在浏览器扩展中可用)。它被禁用大概是因为它允许任何网站窃取剪贴板的内容。来自MDN 文档execCommand
:
paste
在插入点粘贴剪贴板内容(替换当前选择)。对 Web 内容禁用。
推荐阅读
- mysql - MySQL 和 MariaDB SELECT 返回类型的区别
- javascript - 更快地显示循环元素的 HTML
- jmeter - JMeter“验证脚本” - 我应该在“结果树”中看到什么?
- ckan - ckan 2.9.0 iroute before_map 不调用自定义控制器
- python - ColumnDataSource 的 on_change 事件的 Bokeh Old 和 New 参数具有相同的值
- json - 在角度 7 中将对象转换为 json
- c# - 在 C# 中接受来自控制台应用程序的输入,而不是使用 Console.ReadLine()
- spring-data-jpa - Spring Data JPA 更新:首选方式
- javascript - JS 通过深度嵌套的对象减少和分组 JSON
- xamarin.forms - 从 PCL 项目调用 xamarin.ios 中的方法