首页 > 解决方案 > 尝试以编程方式粘贴

问题描述

我在使用 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 中显式打开。有没有办法(除了使用闪存......这在我所做的研究中谈到)以编程方式在内容可编辑元素中执行“粘贴”?

标签: javascriptcontenteditablepasteexeccommand

解决方案


paste命令在 Web 内容中被禁用(它仅在浏览器扩展中可用)。它被禁用大概是因为它允许任何网站窃取剪贴板的内容。来自MDN 文档execCommand

paste

在插入点粘贴剪贴板内容(替换当前选择)。对 Web 内容禁用。


推荐阅读