Как обнаружить функцию копирования в буфер обмена перед ее использованием

Я пытаюсь создать функцию копирования в чистом JS, поэтому нет флеш-памяти. Проблема в том, что я не хочу показывать кнопку копирования, когда браузер не поддерживает копирование в буфер обмена.

Я использую метод document.execCommand('copy') для копирования в буфер обмена, но поддержка этого не самая лучшая. Например, safari имеет функцию execCommand, но не поддерживает параметр копирования. Это означает, что я не могу просто проверить, существует ли функция.

Из-за этой хитрой поддержки я думаю, что мне придется пойти по пути обнаружения браузера, точно так же, как это делает github, с которой я столкнулся при просмотре zeroclipboard . Здесь - реализация, которую я нашел.

Есть ли правильный способ обнаружить пользовательский агент? Я бы предпочел не использовать NavigatorID.userAgent, поскольку он устарел согласно MDN .

7 голосов | спросил silverlight513 22 MarpmTue, 22 Mar 2016 15:01:57 +03002016-03-22T15:01:57+03:0003 2016, 15:01:57

1 ответ


0

Я заметил, что в Safari до версии 10 (проверено на 9.0 и 9.1) следующая конструкция

document.execCommand('copy');

вернет false. Этот факт можно использовать для проверки совместимости в Safari.

if (false == document.execCommand('copy')) {
    // Logic for handling the copy functionality in some other way
}
ответил Yaroslav Rogoza 12 PM00000040000000731 2016, 16:21:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132