gpt4 book ai didi

javascript - 剪贴板事件

转载 作者:可可西里 更新时间:2023-11-01 13:21:05 24 4
gpt4 key购买 nike

我在从代码创建 ClipboardEvent 时遇到了问题。未定义已创建事件中的 clipboardData 对象。

有人知道吗?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input id="testPasteInput">
<button onclick="pasteFromCode()">Paste</button>
<script>
const testPasteInput = document.getElementById('testPasteInput');
testPasteInput.addEventListener('paste', ({clipboardData}) => console.log(clipboardData.getData('text')));

function pasteFromCode() {
const clipboardEvent = new ClipboardEvent('paste', { dataType: 'text/plain', data: '123' });
testPasteInput.dispatchEvent(clipboardEvent);
}
</script>
</body>
</html>

最佳答案

这是一个特定于浏览器的问题。您的代码在 Firefox 中运行良好,但 clipboardDataChromeSafari 等 webkit 浏览器中未正确设置。

我创建了这个 fiddle使用您的代码,可以在 Firefox 中对其进行测试以验证它是否在那里工作。

其实ClipboardEvent是一个实验性的技术,目前还没有得到所有主流浏览器的完全支持。 Internet Explorer 尚不支持使用构造函数(如new ClipboardEvent('paste'))本身创建事件。同样可以从 MDN-documentation 的下图验证。浏览器兼容性

enter image description here

但是,Chrome 对这三个都提供了支持,因此这是他们的错误。我报告了一个错误 here在 Chrome 错误报告仪表板中。希望他们会在即将发布的任何版本中解决这个问题。

关于javascript - 剪贴板事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48186920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com