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

回到顶部