粘贴前更新剪贴板数据(不是“粘贴”事件)
Posted
技术标签:
【中文标题】粘贴前更新剪贴板数据(不是“粘贴”事件)【英文标题】:Update the clipboard data before paste (not the 'paste' event) 【发布时间】:2018-03-14 07:22:33 【问题描述】:我有一个要求,将复制到剪贴板上的文本在粘贴之前必须转换为其他文本。例如,在单击按钮时,我以编程方式进行剪贴板复制,并且将“更改前”之类的一些文本复制到剪贴板上。我绑定到我的编辑器的粘贴事件无法更改剪贴板数据,并且它始终是剪贴板上存在的数据(“更改前”)被复制。
$("#Editor1").on("paste", createIncludedScriptPath);
function createIncludedScriptPath(e)
var pastedData = e.originalEvent.clipboardData.getData('text');
var path = createPath(pastedData);
textToCopy = "." + " " + "'" + path + "'";
copyTextToClipboard(textToCopy);
在这里,在上面的代码中,我试图获取现有的剪贴板数据,对其进行更改并将更改后的数据复制到剪贴板上。但是,总是粘贴旧数据,即(在 pastedData 变量中)。
我了解到,在剪贴板粘贴 API 中,您无法重置剪贴板。
如何更新剪贴板数据,以便最终粘贴更新的数据?
【问题讨论】:
最好的选择是在复制到剪贴板之前修改数据。 我不能,因为我正在根据要粘贴的位置获取一些信息 好的。所以您可以在上面的 evnt 处理函数中进行更改并手动放置可编辑框的.value
。别忘了把preventDefault()
成功了!谢谢纳曼
【参考方案1】:
您可以直接设置编辑器内容并调用 e.preventDefault();
我认为更新剪贴板数据不起作用。
【讨论】:
以上是关于粘贴前更新剪贴板数据(不是“粘贴”事件)的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 在粘贴事件中获取剪贴板数据(跨浏览器)