Как скопировать данные в буфер обмена с помощью Greasemonkey?
Я нашел этот вопрос, но пытаюсь использовать приведенный там код:
unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
.getService(Components.interfaces.nsIClipboardHelper)
;
clipboardHelper.copyString('test');
Выдает сообщение об ошибке:
Сценарию с " http://example.com/" было отказано в привилегиях UniversalXPConnect.
Я также пытался использовать ( с сайта Mozilla):
const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
.getService(Components.interfaces.nsIClipboardHelper)
;
gClipboardHelper.copyString("test2");
Что дает сообщение об ошибке: Components.classes is undefined
,
В обоих случаях это не работает с последним Firefox на Windows 7.
Что еще я должен попробовать?
1 ответ
Обновить:
Начиная с версии 1.10 (20 июня 2013 г.), Greasemonkey теперь поддерживает GM_setClipboard()
функция
Используйте вот так:
// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_setClipboard
// ==/UserScript==
GM_setClipboard ("The clipboard now contains this sentence.");
Старые версии GM:
Это очень сложно сделать с Greasemonkey, так как разработчики GM отказываются поддерживать его, и настройки безопасности FF и Flash должны быть преодолены.
Вы можете сделать это, если копия будет инициирована нажатием кнопки вручную. В этом случае используйте один из методов из этого вопроса.
Если вы хотите иметь какую-то полностью автоматическую операцию с буфером обмена, вам нужно будет разработать собственное дополнение или плагин для использования в вашем скрипте GM.
Scriptish поддерживает это годами:
Если вы открыты для переключения надстроек сценариев, обратите внимание, что Scriptish предоставляет GM_setClipboard()
установить буфер обмена. (Но нет функции читать это?!)
Сценарий не идеален, но он лучше, чем Greasemonkey в нескольких отношениях. (Обратите внимание, что я не связан ни с надстройкой, ни с полностью не доволен).
Большинство сценариев GM будут работать на Scriptish без проблем.
Что касается фрагментов кода, из вопроса; по сути, это одно и то же (первое - это песочница GM). Этот подход устарел для многих версий Firefox, а код замены плохо документирован.
Вам придется использовать методы, которые требуют взаимодействия с пользователем, или вам придется написать собственное дополнение для помощника.