Как разрешить асинхронную программную функцию копирования в буфер обмена в FireFox - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть веб-сайт, который позволяет пользователям копировать информацию в буфер обмена, чтобы упростить выполнение других задач.Моя проблема заключается в том, что FireFox не позволяет асинхронную функцию копирования в буфер обмена.Мне нужна асинхронная функция, так как данные, отображаемые на экране, не обязательно копируются (в соответствии с требованиями клиента).Итак, я отправляюсь на сервер, чтобы собрать соответствующую информацию и вернуть ее клиенту.Это работает в Chrome и IE.

Следующие оба всегда терпят неудачу в FireFox

document.execCommand("copy")

Или

navigator.clipboard.writeText(text)

Я также пытался запросить разрешение, но оно говорит мненазвание разрешений не распознано:

Либо:

navigator.permissions.query({name:'clipboardWrite'})

Или:

navigator.permissions.query({name:'clipboard-write'})

Мне известно, что расширения / надстройки имеют дополнительные функции, которые могутбыть доступным и доступным для меня, но это не вариант для меня.

Есть ли способ разрешить веб-сайтам изначально запрашивать доступ к функции асинхронного буфера обмена в FireFox?

1 Ответ

1 голос
/ 01 апреля 2019

Firefox может запускать команды буфера обмена только по инициативе пользователя. Проблема, скорее всего, там.

Подробнее об этом вы можете прочитать в таблице совместимости на MDN: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText

Я настоятельно рекомендую вам использовать библиотеку, которая устраняет несоответствия браузера. ClipboardJS является самым популярным https://clipboardjs.com.

...