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

How to detect copy to clipboard functionality before using it

本文关键字:复制 剪贴板 功能 检测      更新时间:2023-09-26

我正试图用纯JS创建一个复制函数,所以没有flash。我遇到的问题是,当浏览器不支持复制到剪贴板时,我不想显示复制按钮。

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

由于这种不可靠的支持,我想我将不得不采用浏览器检测的方式,就像github在处理零剪贴板问题时遇到的那样。这是我发现的实现。

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

我注意到,在Safari版本10之前(在9.0和9.1上测试)

document.execCommand('copy');

将返回CCD_ 2。此事实可用于检查Safari中的兼容性。

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