Как на JavaScript скопировать текст в буфер обмена кроссбраузерно?

Вопрос

Как можно скопировать какой-нибудь текст в буфер обмена, если это вообще возможно? Я попытался использовать эту функцию, которую нашёл в интернете:

function copyToClipboard(text)
{
if (window.clipboardData) // IE
{
window.clipboardData.setData("Text", text);
}
else
{
unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
clipboardHelper.copyString(text);
}
}

Но Chrome, Explorer и Opera выдают ошибку, а Firefox показывает всплывающее окно с запросом разрешений на эту операцию, а в случае согласия таки копирует. Существует ли приемлемое решение этой задачи? Сомневаюсь конечно, но мало ли…

Ответ №1

Есть библиотека, которая работает, если установлен 10-й флеш плеер и выше. Конечно, я понимаю Ваше негодование: надоел этот никак не умирающий флеш и всё такое. Но выбирайте — либо так, либо никак. По крайней мере я решения пока не встречал.

No responses yet

Добавить комментарий