【发布时间】:2016-03-22 12:01:57
【问题描述】:
我正在尝试在纯 JS 中创建复制功能,所以没有 flash。我遇到的问题是,当浏览器不支持复制到剪贴板时,我不想显示复制按钮。
我正在使用document.execCommand('copy') 方法复制到剪贴板,但对此的支持并不是最好的。例如,safari 有 execCommand 功能,但不支持 copy 参数。这意味着我不能简单地检查函数是否存在。
由于这种狡猾的支持,我认为我将不得不介入浏览器检测,就像我在查看zeroclipboard 问题时遇到的 github 所做的那样。 Here 是我找到的实现。
是否有正确的方法来检测用户代理?我宁愿不使用 NavigatorID.userAgent,因为根据 MDN 已弃用。
【问题讨论】:
-
你试过
typeof document.execCommand !== 'undefined'吗? -
正如我在问题中所说,safari 具有功能 document.execCommand 但不支持参数'copy'。这就是为什么我正在考虑沿着浏览器检测的路线走下去。尝试使用带有该参数的函数时,它也不会引发错误。
-
在我看来,除了用户代理嗅探之外,没有其他可靠的方法。但是(我意识到这是 5 年后的事了!)对此的支持现在无处不在。 2016 年年中之后发布的任何内容都缺乏支持,因此我认为不再需要检测支持。
标签: javascript copy-paste