【问题标题】:Trying to programmically paste尝试以编程方式粘贴
【发布时间】:2020-01-16 01:09:43
【问题描述】:

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

【问题讨论】:

标签: javascript contenteditable paste execcommand


【解决方案1】:

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

paste

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

【讨论】:

    【解决方案2】:

    试试下面的代码

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多