首先,请注意,这在Chrome中完美运行。
我试图在JavaScript中覆盖复制事件,并用我自己的数据替换剪贴板内容。我将问题的基本内容提取到这个小提琴中:https://jsfiddle.net/gxewmc2h/4/(是的,我需要使用全局变量来设置数据)
window.globalCopyObject = {};
window.globalCopyObject.clipboardDataText = "text value";
window.globalCopyObject.clipboardHtmlText = "html value";
document.addEventListener("copy", function (event) {
event.clipboardData.setData("text/plain", window.globalCopyObject.clipboardDataText);
event.clipboardData.setData("text/html", window.globalCopyObject.clipboardHtmlText);
event.preventDefault();
});
当您使用Edge并尝试复制页面上的文本并将其粘贴到输入中时,它会覆盖事件,因为剪贴板已清空,但它不会用新数据填充它。
据我所知,最新的Edge应该支持剪贴板API,是否有一些我不知道的东西?
提前感谢您的任何想法。