Javascript 剪贴板事件
我在用代码创建剪贴簿时遇到了一个问题。未定义已创建事件中的clipboardData对象 也许有人知道这件事Javascript 剪贴板事件,javascript,html,Javascript,Html,我在用代码创建剪贴簿时遇到了一个问题。未定义已创建事件中的clipboardData对象 也许有人知道这件事 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input id="testPasteInput">
<!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>
文件
粘贴
const testPasteInput=document.getElementById('testPasteInput');
testPasteInput.addEventListener('paste',({clipboardData})=>console.log(clipboardData.getData('text'));
函数pasteFromCode(){
const clipboardEvent=new clipboardEvent('paste',{dataType:'text/plain',data:'123'});
testPasteInput.dispatchEvent(clipboardEvent);
}
这是一个特定于浏览器的问题。您的代码在Firefox中运行良好,但在诸如Chrome和Safari等webkit浏览器中,clipboardData
设置不正确
我用你的代码创建了这个,可以在Firefox中测试,以验证它是否在那里工作
实际上,ClipboardEvent
是一项实验性技术,尚未得到所有主流浏览器的完全支持。Internet Explorer尚不支持使用构造函数创建事件(如新建剪贴板('paste')
)。t可从下表中的图像验证是否兼容浏览器
但是,Chrome为这三种浏览器提供了支持,因此这是它们的bug。我在Chrome bug report dashboard中报告了一个相同的bug。希望他们在即将发布的任何版本中都能发现并解决此问题。为什么不设置值?@baao这只是一个例子。我有一个案例需要发送剪贴簿