首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript execCommand("paste")不工作

javascript execCommand("paste")不工作
EN

Stack Overflow用户
提问于 2016-08-29 01:17:46
回答 3查看 9.3K关注 0票数 5

Document.execCommand(“粘贴”)不起作用!“复制”和“剪切”都能正常工作。

代码语言:javascript
运行
复制
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 (没有扩展,只是一个普通的网页)。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-29 01:29:09

出于安全原因,它在chrome中被阻止了。甚至连office 365也要求他们的用户使用ctrl+c/ctrl+v快捷键,而不是复制。

此功能目前仅适用于chrome扩展。

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

代码语言:javascript
运行
复制
 document.execCommand('insertText' 

但您需要首先将文本区域作为焦点

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

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

票数 8
EN

Stack Overflow用户

发布于 2016-08-29 01:28:29

Mozilla Documentation of Document.execCommand()中清楚地提到了这一点:

粘贴

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

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

票数 2
EN

Stack Overflow用户

发布于 2019-05-08 14:03:10

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

代码语言:javascript
运行
复制
navigator.clipboard.readText().then(function(text){ 
    document.execCommand( "insertHTML", false, text || "");
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39193878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档