javascript execCommand(" paste")无效

时间:2016-08-28 17:17:46

标签: javascript

document.execCommand("粘贴")不起作用! "复印"和" 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);

此警报"不成功"在粘贴,但"成功"在复制和剪切..

我使用" copy"在我的网页上的另一个地方,整个事情就像一个魅力,但我需要得到"粘贴"工作也很好..

我使用Chrome(没有扩展程序,只是常规网页)。 有什么想法吗?

3 个答案:

答案 0 :(得分:4)

出于安全原因,它在Chrome中被阻止。 甚至办公室365都要求他们的用户使用shorcuts ctrl + v而不是复制。

此功能现在仅适用于Chrome扩展程序。

编辑:

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

 document.execCommand('insertText' 

但你需要首先关注textarea

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

答案 1 :(得分:2)

Mozilla Documentation of Document.execCommand()中明确提到了这一点 的是:

<强>糊

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

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

答案 2 :(得分:0)

我遇到了同样的问题。因此,当我使用下面的代码进行变通时,它的工作受到一些限制。试试看:)

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