document.execCommand(“paste”)不执行

时间:2015-11-12 01:18:55

标签: javascript jquery html cross-browser paste

我有一个input HTML元素,如下所示:

<input title="clipboard" id="clipboard-input" type="text" value="">

我已经将它的粘贴事件与jquery绑定到一个自定义代码,这与自定义代码不相关,但是当元素被聚焦时按下ctrl + v时此绑定有效。

现在,我已经创建了一个用于触发粘贴事件的按钮。它只是一个简单的button,其中click事件绑定到具有body的函数,例如:

$("#clipboard-input")[0].focus();
document.execCommand("paste");

按下按钮时会触发click事件,剪贴板元素会聚焦,但粘贴事件不会由execCommand触发。阅读文档应该可行,因为它是用户启动的操作,它调用execCommand但由于某种原因execCommand返回false,这意味着它失败了。

我正在寻找一种不使用闪存的跨浏览器解决方案。

修改

我创建了MWE(最小非工作示例)here。尝试直接在输入字段中粘贴某些内容,并调用粘贴处理程序,更改段落中的文本。但是当按下按钮时,输入字段会被聚焦,但execCommand无法触发粘贴事件。

1 个答案:

答案 0 :(得分:1)

这是一个特定的命令,只有当浏览器处于设计模式时,文档才会变成一个公开RTE功能的编辑器,而且确切的语法是

document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)

参考:https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand