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

时间:2016-03-22 12:01:58

标签: javascript copy-paste

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

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

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

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

1 个答案:

答案 0 :(得分:4)

我注意到在版本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
}