clipboardData.getData('text/rtf')卡死怎么办
通过性能调试,发现读取剪贴板内容花了很长时间。内容少的时候还好,如果内容中包含很多图片,浏览器就卡住了(如果电脑比较差,可能直接就崩了),经过很长时间才继续执行下去
网上搜了一天,都没有找到方法,请问有没有什么解决办法么?
没啥办法,这是 IE 留下的坑。
本来这个 API 也不是 W3C 标准,是 IE5 引入的一个私有 API,后来各家浏览器为了竞争照猫画虎也实现了类似功能。
两个巨坑:
- 是个同步 API(这点也不能全怪 IE,毕竟那时候 Promise 啥的连影子都没有呢),这就就是你卡的原因;
- 权限问题,无需任何授权即可读写用户的剪贴板。
各家浏览器目前正在考虑实现一套新的 API(见此:https://developer.mozilla.org...),以解决上述两个问题:
navigator.clipboard.read().then(res => {
console.log(res);
})
.catch(err => {
console.error(err);
});
主流一些的浏览器都已经基本支持了,兼容性表可以自己查 caniuse.com。
P.S. 如果你就是为了运行在 IE,连微软自己都放弃了,你还指望谁给解决方案?
回答
以上是 clipboardData.getData('text/rtf')卡死怎么办 的全部内容, 来源链接: www.h5w3.com/113544.html