簡體   English   中英

復制到Firefox擴展程序中的剪貼板不起作用

[英]Copy to clipboard in Firefox extension not working

我想編寫一個Firefox擴展,將其復制到剪貼板,並使用選定的text參數執行一個外部程序。 我發現此鏈接MDN使用剪貼板復制剪貼板,但是不起作用。 當我嘗試使用cfx run執行時,總是收到此錯誤消息

(c:\\ Works \\ Firefox \\ addon-sdk-1.17)c:\\ Works \\ Firefox \\ ExternalOpener> cfx運行

來自文件c:\\ Works \\ Firefox \\ ExternalOpener \\ lib \\ main.js的以下行:11:const gClipboardHelper = Components.classes [“ @ mozilla.org/widget/clipboard helper; 1”]。getService(Components.interfaces。 nsIClipboardHelper); 使用“組件”訪問Chrome授權。 為此,您需要添加類似於以下內容的行:

const {Cc,Ci} = require(“ chrome”);

然后,您可以使用從“ chrome”模塊(“ Cc”,“ Ci”,“ Cm”,“ Cr”和“ Cu”表示“類”,“接口”,“管理器”,‘結果’和‘utils的’屬性,分別,而且components用於Components對象本身)。

這是我的main.js

var contextMenu = require("sdk/context-menu");
 var menuItem = contextMenu.Item({
  label: "Open in External",
  context: contextMenu.SelectionContext(),
  contentScript: 'self.on("click", function () {' +
                 '  var text = window.getSelection().toString();' +
                 '  self.postMessage(text);' +
                 '});',
  onMessage: function (selectionText) {
    console.log(selectionText);
    const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
gClipboardHelper.copyString(selectionText);

  }
});

歡迎任何想法,關於剪貼板復制或帶有參數的外部應用程序執行...

謝謝

該文檔屬於基於XUL的插件,而您編寫的插件是基於Addon-SDK插件

為了在基於sdk的插件中使用Component.classesComponent.interfaces ,您需要Chrome Authority

該錯誤告訴您的是,未定義Components.classes和Components.interfaces。 為了使用,您必須首先要求它們:

const {Cc, Ci} = require("chrome");

然后以這種方式使用它們:

const gClipboardHelper =Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
gClipboardHelper.copyString(selectionText);

Cc代表Component.classesCi代表Components.interfaces 請閱讀有關Chrome授權的文檔,以了解它們和其他屬性;)

我認為這正是您想要的: https : //developer.mozilla.org/zh-CN/Add-ons/SDK/High-Level_APIs/clipboard

您可以像這樣使用它:

var clipboard = require("sdk/clipboard");
clipboard.set("Lorem ipsum dolor sit amet");
var contents = clipboard.get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM