javascript execCommand("paste")不起作用

javascript execCommand("paste") not working

本文关键字:quot 不起作用 paste execCommand javascript      更新时间:2023-09-26

document.execCommand("粘贴")不起作用!"Copy"answers"cut"都可以。

var editor = document.getElementById("ta1");
editor.focus();
editor.select();
var successful = document.execCommand("Paste");  
var msg = successful ? 'successful' : 'unsuccessful';  
alert('Pasting text command was ' + msg);

粘贴时提示"不成功",复制和剪切时提示"成功"。

我在我的网页的另一个地方使用了"复制",整个事情就像一个魅力,但我需要得到"粘贴"的工作以及…

我使用Chrome(没有扩展,只是一个普通的网页)。什么好主意吗?

出于安全原因,在chrome浏览器中被屏蔽。甚至office 365也要求用户使用快捷键ctrl+c/ctrl+v而不是copy。

这个功能现在只适用于chrome扩展。

如果要复制的文本必须粘贴到同一页上,则只需将文本存储在变量中,然后可以使用以下命令粘贴

 document.execCommand('insertText' 

但是你需要先聚焦文本区域

和复制选择https://developer.mozilla.org/fr/docs/Web/API/Window/getSelection

完整的示例https://jsfiddle.net/bormat/9a8nuzse/2/

这在Document.execCommand()的Mozilla文档中有明确提到:

在插入点粘贴剪贴板内容(替换当前选择)。剪贴板功能必须在user.js首选项文件中启用。看到1。

1在Firefox 41之前,剪贴板功能需要在user.js首选项文件中启用。有关更多信息,请参阅Mozilla首选项的简要指南。如果命令不被支持或启用,execCommand将引发异常而不是返回false。在Firefox 41及更高版本中,剪贴板功能默认情况下在任何能够弹出窗口的事件处理程序中都是启用的(半信任脚本)。

我也有同样的问题。因此,作为工作,我使用下面的代码,它的工作有一些限制。试试吧:)

navigator.clipboard.readText().then(function(text){ 
    document.execCommand( "insertHTML", false, text || "");
});