尝试以编程方式粘贴

Trying to programmically paste

我在使用 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");
    }
  });

复制开箱即用。我无法粘贴工作。我在控制台中看到 "Paste",但没有粘贴任何内容。我读过一些东西说这个功能需要在 Firefox 中明确打开。有没有办法(除了使用 flash...这在我所做的研究中讨论过)以编程方式在内容可编辑元素中执行 "paste"?

试试下面的代码

console.log(document.exeCommand('paste')

如果为false,可能需要授权才能使用,或者你的导航器不支持 您还可以使用剪贴板 API,这会删除 exeCommand

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

paste

Pastes the clipboard contents at the insertion point (replaces current selection). Disabled for web content.