javascript – 如何在使用之前检测复制到剪贴板功能

我正在尝试在纯JS中创建一个复制功能,所以没有闪存.我遇到的问题是,当浏览器不支持复制到剪贴板时,我不想显示复制按钮.

我正在使用document.execCommand(‘copy’)方法来复制到剪贴板,但对此的支持并不是最好的.例如,safari具有execCommand函数,但不支持copy参数.这意味着我不能简单地检查函数是否存在.

由于这种狡猾的支持,我认为我将不得不采用浏览器检测的方式,就像我在查看zeroclipboard问题时遇到的github一样. Here是我发现的实现.

有没有正确的方法来检测用户代理?我宁愿不使用NavigatorID.userAgent,因为根据MDN不推荐使用它.

解决方法

我注意到在版本10之前的Safari(在9.0和9.1上测试)以下构造
document.execCommand('copy');

将返回false.
这个事实可用于检查Safari中的兼容性.

if (false == document.execCommand('copy')) {
    // Logic for handling the copy functionality in some other way
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...