9

tôi thấy this question nhưng cố gắng sử dụng mã số đó:Làm thế nào để sao chép dữ liệu vào clipboard bằng Greasemonkey?

unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"] 
    .getService(Components.interfaces.nsIClipboardHelper) 
; 
clipboardHelper.copyString('test'); 


Cung cấp các thông báo lỗi:

Một kịch bản từ «http://example.com» đã bị từ chối UniversalXPConnect đặc quyền.



Tôi cũng cố gắng sử dụng (from Mozilla site):

const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"] 
    .getService(Components.interfaces.nsIClipboardHelper) 
; 
gClipboardHelper.copyString("test2"); 

Mà cho thông báo lỗi: Components.classes is undefined.

Trong cả hai trường hợp, tính năng này không hoạt động với Firefox mới nhất trên Windows 7.
Tôi nên thử gì khác?

Trả lời

19

Cập nhật:

Tính đến phiên bản 1.10 (ngày 20 tháng 6 năm 2013), Greasemonkey bây giờ hỗ trợ the GM_setClipboard() function.
Sử dụng như sau:

// ==UserScript== 
// @name  _YOUR_SCRIPT_NAME 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @grant GM_setClipboard 
// ==/UserScript== 

GM_setClipboard ("The clipboard now contains this sentence."); 
phiên bản

Cũ hơn GM:

này là rất khó khăn để làm với Greasemonkey từ devs GM từ chối hỗ trợ nó và FF và Flash thiết lập bảo mật phải vượt qua.
Bạn có thể làm điều đó nếu bản sao sẽ được bắt đầu bằng cách nhấp chuột thủ công. Trong trường hợp đó, hãy sử dụng một trong các kỹ thuật từ this question.

Nếu bạn muốn có một số hoạt động trên khay nhớ tạm thời hoàn toàn tự động, thì bạn sẽ phải phát triển tiện ích bổ sung hoặc plugin của riêng bạn cho tập lệnh GM để sử dụng.


Scriptish đã hỗ trợ này trong nhiều năm:

Nếu bạn đang mở để chuyển đổi kịch bản add-ons, lưu ý rằng Scriptish cung cấp GM_setClipboard() to set the clipboard. (Nhưng không có chức năng để đọc nó ?!)

Scriptish không hoàn hảo, nhưng nó tốt hơn Greasemonkey theo một vài cách. (Lưu ý tôi không liên kết với một trong hai tiện ích bổ sung, cũng không phải tôi hoàn toàn hài lòng với một trong hai.)

Hầu hết các tập lệnh GM sẽ chạy trong Scriptish mà không có vấn đề gì.


Đối với đoạn mã, từ câu hỏi; về cơ bản chúng giống nhau (lần đầu tiên chỉ chiếm hộp cát GM). Cách tiếp cận đó đã lỗi thời cho nhiều phiên bản của Firefox và mã thay thế không được ghi lại.
Bạn sẽ phải sử dụng các kỹ thuật yêu cầu tương tác của người dùng hoặc bạn sẽ phải viết một tiện ích trợ giúp tùy chỉnh.

+0

+1 cho Scriptish. Làm cho ngày của tôi. – Kris

+0

[Greasemonkey Cuối cùng hỗ trợ GM_setClipboard!] (Http://scriptish.org/news/2013/07/15/greasemonkey-finally-supports-clipboard.html) –

Các vấn đề liên quan