我非常沮丧地在我的 React 应用程序上从剪贴板进行粘贴。
I used navigator.clipboard.readText()
,在 Chrome 浏览器上完美运行。
但它在我最新的 Firefox 浏览器上不起作用。
我尝试搜索SO,但与之相关的帖子很少。但所有这些都不能让我快乐。
根据 MDN 文档,它说:
Blockquote Firefox 仅支持在浏览器扩展中读取剪贴板,使用“clipboardRead”扩展权限。
但我真的不知道如何启用它。
你能帮我解决这个问题吗?
有什么好的库吗?
提前致谢。
我在一个项目中所做的就是为文档注册一个事件监听器,以处理 useEffect 挂钩中的粘贴事件。
useEffect(() => {
const pasteFn = (event) => {
const data = event.clipboardData.items;
for (let i = 0; i < data.length; i += 1) {
if (data[i].kind === 'string' && data[i].type.match('^text/plain')) {
data[i].getAsString((str) => console.log('text/plain', str));
} else if (data[i].kind === 'string' && data[i].type.match('^text/html')) {
data[i].getAsString((str) => console.log('html', str));
} else if (data[i].kind === 'string' && data[i].type.match('^text/uri-list')) {
data[i].getAsString((str) => console.log('uri', str));
} else if (data[i].kind === 'file' && data[i].type.match('^image/')) {
const f = data[i].getAsFile();
console.log('File', f);
}
}
};
document.addEventListener('paste', pasteFn);
return () => {
document.removeEventListener('paste', pasteFn); // clean up
};
}, []);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)