9

나는 this question하지만 거기에 주어진 코드를 사용하려고 발견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 권한이 거부되었습니다.



나는 또한 사용하려고 (from Mozilla site) :

오류 메시지 제공
const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"] 
    .getService(Components.interfaces.nsIClipboardHelper) 
; 
gClipboardHelper.copyString("test2"); 

: Components.classes is undefined합니다.

두 경우 모두 Windows 7의 최신 Firefox에서는 작동하지 않습니다.
그 밖의 무엇을 시도해야합니까?

답변

19

업데이트 :

버전 1.10 (6 월 (20), 2013)로, 그리스 몽키는 이제 the GM_setClipboard() function을 지원합니다. 그래서 같은
사용 :

// ==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 버전 :

GM 개발자들이이를 지원하기를 거부하기 때문에 이것은 그리스 몽키와 함께 할 매우 어려운 일이며, FF 및 플래시 보안 설정을해야합니다 이기다.
수동 클릭으로 복사를 시작하는 경우 수행 할 수 있습니다.. 이 경우 this question의 기술 중 하나를 사용하십시오.

일종의 완전 자동 클립 보드 작업을 원한다면 GM 스크립트 용 애드온 또는 플러그인을 직접 개발해야합니다.


Scriptish 년 동안이 지원했습니다 스크립트 추가 기능 전환에 열려 있으면 ScriptishGM_setClipboard() to set the clipboard를 제공하고 있습니다

. (하지만 읽을 수있는 기능이 없습니다.)

Scriptish는 완벽하지는 않지만 몇 가지면에서 Greasemonkey보다 낫습니다. (나는 부가 기능과 관련이 없으며 그 중 하나에 대해서도 완전히 만족하지 않습니다.)

대부분의 GM 스크립트는 문제없이 Scriptish에서 실행됩니다.


질문에서와 같이, 그들은 본질적으로 동일한 것입니다 (GM 샌드 박스의 첫 번째 계정입니다). 이 접근법은 여러 버전의 Firefox에서 폐기되었으며 교체 코드는 문서화가 잘되어 있지 않습니다.
사용자 상호 작용이 필요한 기술을 사용해야하거나 사용자 정의 도우미 추가 기능을 작성해야합니다.

+0

+1 Scriptish 용입니다. 내 하루를 만들어. – Kris

+0

[Greasemonkey가 마침내 GM_setClipboard를 지원합니다!] (http://scriptish.org/news/2013/07/15/greasemonkey-finally-supports-clipboard.html) –

관련 문제